public bool SampleMethod()
{
Parallel.ForEach(List, Val =>
{
// execute some time consuming code
});
return true;
}
我注意到Parallel.Foreach
正在阻塞该线程,直到foreach循环中的所有任务都完成为止。
对于上面的方法,我想立即返回true,即使Parallel.foreach
块中的操作仍在执行(它们仍应在后台运行,直到所有这些操作都完成)。
这可能吗?
答案 0 :(得分:3)
您可以在另一个线程中执行并行操作:
public bool SampleMethod()
{
Task.Run(() => {
Parallel.ForEach(List, Val =>
{
// execute some time consuming code
});
});
return true;
}
这将在一个单独的线程中启动任务并返回true
而不等待它完成。