4

リスト項目の並列スレッドを呼び出すバックグラウンド ワーカーがあります

 doWork()
    {
    Parallel.foreach(list1, a=>
    {
       while(true)
       {
             //do some operations
       }
    });

    Parallel.foreach(list2, b=>
    {
        while(true)
        {
            //do some operations
        } 
    });
    }

これらのリストの両方を並行して実行したい場合、親として別のスレッドを作成するか、別の方法で作成する必要がありますか?? 私は両方のリストを別々に取得しているので、それらを組み合わせることはオプションではありません.そして、私はそれらの両方の中で無限ループを実行しています.

4

2 に答える 2

4

タスクを使用して、2 つのループを別々のスレッドで実行できます。通常の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);
于 2012-11-13T08:07:24.900 に答える
0

2 つの「foreach」ループ用に 2 つの個別のスレッドを作成します。

于 2012-11-13T08:03:06.287 に答える