我正在編寫一個程序,我通常啓動五個線程。線程以不確定的順序返回。每個線程都調用一個返回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早些時候宣佈列表中的每個線程。
怎麼會這樣呢?
同時我知道必須有一個更好的辦法比下面等待所有線程完成
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;
}
}
和我一樣的想法...但更好的方法回答:( – 2009-07-31 22:51:09