0

これが私のアプリの簡単な疑似ですImageDTはDataTableです

Parallel.ForEach(ImageDT.AsEnumerable(), row =>
{
    if (a1 != a2)
    {
        ThreadPool.QueueUserWorkItem(Foo1, row["foo"])
    }
    else 
    {
        ThreadPool.QueueUserWorkItem(Foo2, row["foo"])
    }
}

アクティブなスレッドの数と、ParallelとThreadPoolのキューに入れられているスレッドの数を知る必要があります。

ありがとう

4

1 に答える 1

1

「キュー」と「アクティブ」の2つの共有整数を追跡します。WorkItemをキューに入れると、キューに入れられます。コールバックメソッドが開始したら、キューをデクリメントし、アクティブをインクリメントします。コールバックが終了したら、Activeをデクリメントします。

于 2012-12-13T22:40:31.677 に答える