BackgroundWorker使用
using System.ComponentModel;
private BackgroundWorker worker;
worker = new BackgroundWorker();
worker.WorkerSupportsCancellation = true;
worker.DoWork += DoWork;
worker.RunWorkerCompleted += WorkerCompleted;
worker.RunWorkerAsync();
void DoWork(object sender, DoWorkEventArgs e)
{
//Btn_Ramp_Process.IsEnabled = false;
BackgroundWorker worker = sender as BackgroundWorker;
while (!C_Sequences.IsAutoThreadStopped)
{
if (!C_Shared_Data.Info_Sys.IsMachineRuningAutoLoading() &&
!C_Shared_Data.Info_Sys.IsMachineRuningManualLoading())
break;
{
System.Threading.Thread.Sleep(2);
}
}
}
void WorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
(System.Threading.ThreadStart)delegate()
{
Img_icon_Start.Source = PlayImg.Source;
Btn_Stop.Background = Normal_Bg;
Btn_Cycle_Stop.Background = Normal_Bg;
Btn_Start.Background = Normal_Bg;
Rdo_Auto_Loading.IsEnabled = true;
Rdo_Manual_Loading.IsEnabled = true;
Btn_Cycle_Stop.IsEnabled = true;
Btn_Stop.IsEnabled = true;
Btn_Start.IsEnabled = true;
//C_Sequences.b_Cycle_Stop = false;
//C_Sequences.b_Stop_Action = false;
});
// Btn_Ramp_Process.IsEnabled = true;
}