停止DoWork C中的后台工作者#

时间:2014-08-21 11:50:28

标签: c# backgroundworker

我的后台工作人员的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
        }
    }
}

1 个答案:

答案 0 :(得分:2)

订阅活动RunWorkerCompleted并关闭处理程序内的应用程序。

worker.RunWorkerCompleted += worker_Completed;

处理程序:

void worker_Completed(object sender, RunWorkerCompletedEventArgs e)
{
    this.Close();
}

问题有点不清楚,但您提供的代码应该有效。这个答案假设问题是在应用程序完成时关闭它。