Guest User

Untitled

a guest
Dec 13th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. #define CREATEHANDLEEARLY
  2. using System.Threading;
  3. using System.ComponentModel;
  4. static class Program
  5. {
  6. static void Main(string[] args)
  7. {
  8.  
  9. System.Console.WriteLine(string.Format("Just Starting {0}", Thread.CurrentThread.ManagedThreadId));
  10. w = new BackgroundWorker();
  11. w.WorkerReportsProgress = true;
  12. w.DoWork += new DoWorkEventHandler(w_DoWork);
  13. w.RunWorkerCompleted += new RunWorkerCompletedEventHandler(w_RunWorkerCompleted);
  14. w.ProgressChanged += new ProgressChangedEventHandler(w_ProgressChanged);
  15. w.RunWorkerAsync();
  16.  
  17. Thread.Sleep(500);
  18.  
  19.  
  20. Thread.Sleep(2000);
  21. System.Windows.Forms.Application.DoEvents();
  22.  
  23. var l = new System.Windows.Forms.Form();
  24. l.Shown += new System.EventHandler(l_Shown);
  25. l.ShowDialog();
  26. }
  27.  
  28. static void l_Shown(object sender, System.EventArgs e)
  29. {
  30. System.Console.WriteLine(string.Format("Form shown {0}", Thread.CurrentThread.ManagedThreadId));
  31. }
  32.  
  33. static BackgroundWorker w;
  34. static void w_ProgressChanged(object sender, ProgressChangedEventArgs e)
  35. {
  36. System.Console.WriteLine(string.Format("Progress Changed, percentage= {1}. {0}", Thread.CurrentThread.ManagedThreadId, e.ProgressPercentage));
  37. }
  38.  
  39. static void w_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
  40. {
  41. bool error = e.Error != null;
  42. System.Console.WriteLine(string.Format("Worker Completed {0}", Thread.CurrentThread.ManagedThreadId));
  43. }
  44.  
  45. static void w_DoWork(object sender, DoWorkEventArgs e)
  46. {
  47. System.Console.WriteLine(string.Format("Doing Work {0}", Thread.CurrentThread.ManagedThreadId));
  48. Thread.Sleep(1000);
  49. (sender as BackgroundWorker).ReportProgress(50);
  50. Thread.Sleep(1000);
  51. System.Console.WriteLine(string.Format("Done Working {0}", Thread.CurrentThread.ManagedThreadId));
  52. }
  53. }
  54.  
  55. /*OUTPUT =
  56. Just Starting 1
  57. Doing Work 3
  58. Progress Changed, percentage= 50. 4
  59. Done Working 3
  60. Worker Completed 4
  61. Form shown 1
  62.  
  63. */
Add Comment
Please, Sign In to add comment