の複製
スレッドプールに与えられるのを待っている X 個の関数があり、スレッドプールのスレッドの最大数は 5 です。すべての X 関数が実行されるまでメインスレッドを待機させるソリューションを見つける必要があります。
コードは次のようになります。
for(int i=0;i<Rulecnt;i++)
{
int copy = count;
ds[copy] = dba.geData(ru[copy]);
dcont[copy] = new DataContainer(ru[copy], ds[copy], copy);
ThreadPool.QueueUserWorkItem(new WaitCallback(runRule[copy].performTask),dcont[count]);
}
すべての関数が実行されるまでメインスレッドを待機させたい。
簡単な解決策は、ManualResetEvents の Rulecnt no を作成してスレッドに渡し、すべてのシグナルが到着するのを待つことです。
しかし、いつでも実行できるスレッドの最大数は 5 であるため、ManualResetEvents を 5 つだけ使用できますか?,可能であれば、どのようにすればよいでしょうか?
または解決策があれば説明してください。