完成任务后如何调用程序

时间:2011-07-24 05:28:30

标签: c# multithreading c#-4.0 task

我如何知道任务已完成?我想要RunWorkerCompleted中的BackGroundWorker事件。

感谢

2 个答案:

答案 0 :(得分:3)

您可以使用ContinueWhenAll,因此当所有流程完成后,您将通知

Task.Factory.ContinueWhenAll(myTasks, _ => OnAllTasksFinished());

private void OnAllTasksFinished()
{
    MessageBox.Show("Finished!");  
}

答案 1 :(得分:0)

我从任务调用多线程方法(最后)

模式多区域方法:

private void SomeEventHandler(object sender, EventArgs e)
{
MethodInvoker method = delegate
    {
        uiSomeTextBox.Text = "some text";
    };

if (InvokeRequired)
    BeginInvoke(method);
else
    method.Invoke();

}

您可以像在bacroundWorker中一样安全地使用WFA

当BackGrounWorker中的算法返回时,他会生成有关工作结束的事件。但是线程对象仍然可以继续存在。它是内部奇点Windows和CLR, - 死亡后可能存在一段时间的线程。