Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define CREATEHANDLEEARLY
- using System.Threading;
- using System.ComponentModel;
- static class Program
- {
- static void Main(string[] args)
- {
- System.Console.WriteLine(string.Format("Just Starting {0}", Thread.CurrentThread.ManagedThreadId));
- w = new BackgroundWorker();
- w.WorkerReportsProgress = true;
- w.DoWork += new DoWorkEventHandler(w_DoWork);
- w.RunWorkerCompleted += new RunWorkerCompletedEventHandler(w_RunWorkerCompleted);
- w.ProgressChanged += new ProgressChangedEventHandler(w_ProgressChanged);
- w.RunWorkerAsync();
- Thread.Sleep(500);
- Thread.Sleep(2000);
- System.Windows.Forms.Application.DoEvents();
- var l = new System.Windows.Forms.Form();
- l.Shown += new System.EventHandler(l_Shown);
- l.ShowDialog();
- }
- static void l_Shown(object sender, System.EventArgs e)
- {
- System.Console.WriteLine(string.Format("Form shown {0}", Thread.CurrentThread.ManagedThreadId));
- }
- static BackgroundWorker w;
- static void w_ProgressChanged(object sender, ProgressChangedEventArgs e)
- {
- System.Console.WriteLine(string.Format("Progress Changed, percentage= {1}. {0}", Thread.CurrentThread.ManagedThreadId, e.ProgressPercentage));
- }
- static void w_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
- {
- bool error = e.Error != null;
- System.Console.WriteLine(string.Format("Worker Completed {0}", Thread.CurrentThread.ManagedThreadId));
- }
- static void w_DoWork(object sender, DoWorkEventArgs e)
- {
- System.Console.WriteLine(string.Format("Doing Work {0}", Thread.CurrentThread.ManagedThreadId));
- Thread.Sleep(1000);
- (sender as BackgroundWorker).ReportProgress(50);
- Thread.Sleep(1000);
- System.Console.WriteLine(string.Format("Done Working {0}", Thread.CurrentThread.ManagedThreadId));
- }
- }
- /*OUTPUT =
- Just Starting 1
- Doing Work 3
- Progress Changed, percentage= 50. 4
- Done Working 3
- Worker Completed 4
- Form shown 1
- */
Add Comment
Please, Sign In to add comment