私は通常5つのスレッドを開始するプログラムを作成しています。スレッドは、非確定的な順序で戻ります。各スレッドはListを返すメソッドを呼び出しています。.NETでデータを返すスレッド
私はこれやってる:だからここ
var masterList = List<string>();
foreach (var threadParam in threadParams)
{
var expression = threadParam ;
ThreadStart sub =() => MyMethod(expressions);
var thread = new Thread(sub)
{
Name = expression
};
listThreads.Add(thread);
thread.Start();
}
var abort = true;
while (abort) //Wait until all threads finish
{
var count = 0;
foreach (var list in listThreads)
{
if (!list.IsAlive)
{
count++;
}
}
if (count == listThreads.Count)
{
abort = false;
}
}
は問題です:
各スレッドには、それは私がmasterListを追加したいリストを前に宣言リターンを終了したとき。
これについてはどうすればよいですか?
また、私は(私はいくつかの中でManualResetEventクラスを使用しましたWaitHandleクラスとWaitHandle.WaitAllをチェック
var abort = true;
while (abort) //Wait until all threads finish
{
var count = 0;
foreach (var list in listThreads)
{
if (!list.IsAlive)
{
count++;
}
}
if (count == listThreads.Count)
{
abort = false;
}
}
私と同じアイデア...しかし、より良い答え:( –