0
暂停一个BackgroundWorker我有一个程序,被连续地运行。从另一个方法
当我启动该程序,我有一个BackgroundWorker(InitialStart.cs):
BackgroundWorker recordingSyncWorker = new BackgroundWorker();
recordingSyncWorker.DoWork += new DoWorkEventHandler(RecordingSyncCheck);
recordingSyncWorker.WorkerSupportsCancellation = false;
recordingSyncWorker.WorkerReportsProgress = false;
recordingSyncWorker.RunWorkerAsync();
void RecordingSyncCheck(object sender, DoWorkEventArgs e)
{
cHandler ch = new cHandler();
Timer theTimer;
int seconds = 1;
if (taskSeconds != null && taskSeconds != "")
seconds = Convert.ToInt32(taskSeconds);
int milliseconds = seconds * 1000;
theTimer = new Timer(10000);
theTimer.Elapsed += new ElapsedEventHandler(ch.SyncMethod);
theTimer.Interval = milliseconds;
theTimer.Enabled = true;
}
而且我有两种方法在另一个类(cHandler.cs):
SyncMethod(object source, System.Timers.ElapsedEventArgs e)
{
// random code
}
private string SDCardCheck(object whatever)
{
//more code
}
SDCardCheck得到称为通过WCF,所以它就像运行cHandler.cs的另一个实例。当我打电话给SDCardCheck时,有没有办法让我暂停BackgroundWorker?
值得注意的是,要做到这一点,在'Timer'需要已经不仅仅是方法的范围较广。 – 2014-10-30 16:49:40
我禁用了BackgroundWorker的,刚跑了,直接从UI线程。初始测试看起来不错。我认为BackgroundWorker是以前版本的补充,因为Syncing方法更加流畅。 – javisrk 2014-10-30 18:57:55