我如何知道任务已完成?我想要RunWorkerCompleted
中的BackGroundWorker
事件。
感谢
答案 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, - 死亡后可能存在一段时间的线程。