簡體   English   中英

一起運行兩個parallel.foreach()

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM