我的后台工作人员的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
}
}
}
答案 0 :(得分:2)
订阅活动RunWorkerCompleted
并关闭处理程序内的应用程序。
worker.RunWorkerCompleted += worker_Completed;
处理程序:
void worker_Completed(object sender, RunWorkerCompletedEventArgs e)
{
this.Close();
}
问题有点不清楚,但您提供的代码应该有效。这个答案假设问题是在应用程序完成时关闭它。