任务依次提交给使用后台线程的ThreadPool。如果我希望程序在完成所有工作但我的任务完成后仍然保持运行,那么强制它们是前台线程吗?或者正在调用wait()更好的主意?
选项A:
Task task1 = Task.Factory.StartNew(Foo);
public void Foo()
{
Thread.CurrentThread.IsBackground=false;
//do work
}
选项B:
Task task1 = Task.Factory.StartNew(Foo);
task1.Wait();
public void Foo()
{
//do work
}
编辑: 这篇文章Can threads started by Tasks Parallel Library act as foreground threads?提出了类似的问题,但答案还不够。他们没有解释选项的好处/缺点。