停止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
        }
    }
}

停止DoWork c#中的后台worker

订阅事件RunWorkerCompleted并关闭处理程序内的应用程序。

worker.RunWorkerCompleted += worker_Completed;

处理程序:

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

这个问题有点不清楚,但是你提供的代码应该可以工作。这个答案假设问题是在完成后关闭应用程序。