Advertisement
Guest User

Sample UI lock sync code for WinForms action invocation (C#)

a guest
Oct 31st, 2012
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.08 KB | None | 0 0
  1.         private void StartThread()
  2.         {
  3.             lock (this)
  4.             {
  5.                 if (!running)
  6.                 {
  7.                     running = true;
  8.                     BackgroundWorker bw = new BackgroundWorker();
  9.                     bw.WorkerSupportsCancellation = true;
  10.                     bw.DoWork += bw_DoWork;
  11.                     bw.RunWorkerCompleted += bw_RunWorkerCompleted;
  12.                     cancelAction = () => bw.CancelAsync();
  13.                     bw.RunWorkerAsync();
  14.                 }
  15.             }
  16.         }
  17.         private void StopThread()
  18.         {
  19.             lock (this)
  20.             {
  21.                 if (running)
  22.                 {
  23.                     running = false;
  24.                 }
  25.             }
  26.         }
  27.         void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
  28.         {
  29.             StopThread();
  30.         }
  31.         void bw_DoWork(object sender, DoWorkEventArgs e)
  32.         {
  33.             Invoke(() => MessageBox.Show(this, "Несём мессадж в массы", this.Text), false);
  34.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement