我有一个后台 worker ,它为列表项调用并行线程
doWork()
{
Parallel.foreach(list1, a=>
{
while(true)
{
//do some operations
}
});
Parallel.foreach(list2, b=>
{
while(true)
{
//do some operations
}
});
}
如果我想同时运行这两个列表,我应该创建另一个线程作为它们的父线程还是其他方式?我分别获得了这两个列表,因此不能将它们组合起来。而且我在这两个列表中运行无限循环。
最佳答案
您可以使用任务在不同的线程上运行两个循环。使用普通的 foreach
循环。
var t1 = Task.Factory.StartNew(() =>
{
foreach(var a in list1)
{
//do some operations
}
});
var t2 = Task.Factory.StartNew(() =>
{
foreach(var a in list1)
{
//do some operations
}
});
// This will block the thread until both tasks have completed
Task.WaitAll(t1, t2);
关于c# - 一起运行两个 parallel.foreach(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13357248/