[英]Running two parallel.foreach() together
我有一個后台工作程序,它為列表項調用並行線程
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);
為兩個'foreach'循環創建兩個單獨的線程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.