我应该杀死Windows窗体中未完成的任务

时间:2015-03-30 14:14:07

标签: c# winforms

在Windows窗体项目中,我有一个窗体,它在按钮上运行一些任务,如下所示:

private void button_Click(object sender, EventArgs e)
{
    new Task(() => { DoSomeCalculations(); }).Start();
}

假设用户在完成任务之前关闭此表单。我应该以某种方式杀死未完成的任务还是自动完成?在这种情况下应用程序会崩溃还是像这样??

提前致谢。

1 个答案:

答案 0 :(得分:2)

如果要在关闭表单时取消任务,则应为每项任务添加取消令牌支持和呼叫请求取消。如果表单是主表单,则您不必执行任何操作 - 关闭UI线程将关闭任务。 如果任务仅与已关闭的表单相关 - 那么是的,您应该取消所有这些任务。