停止DoWork c#中的后台worker
本文关键字:后台 worker DoWork 停止 | 更新日期: 2023-09-27 18:18:54
在后台worker的do_work操作中有一个循环。我希望我的后台工作人员工作一段时间,然后我希望我的应用程序关闭。这是我的尝试:
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(worker_DoWork);
worker.RunWorkerAsync();
dt = DateTime.Now;
void worker_DoWork(object sender, DoWorkEventArgs e)
{
while (true)
{
//do some work
TimeSpan ts = DateTime.Now - dt;
if (ts.TotalMilliseconds >= 10 * 1000)
{
break;
// and stop background worker
}
}
}
订阅事件RunWorkerCompleted
并关闭处理程序内的应用程序。
worker.RunWorkerCompleted += worker_Completed;
处理程序:
void worker_Completed(object sender, RunWorkerCompletedEventArgs e)
{
this.Close();
}
这个问题有点不清楚,但是你提供的代码应该可以工作。这个答案假设问题是在完成后关闭应用程序。