Tôi đang viết một chương trình mà tôi thường bắt đầu năm luồng. Các luồng trả về theo thứ tự không xác định. Mỗi thread đang gọi một phương thức trả về một List.Các chủ đề trả về dữ liệu trong .NET
tôi đang làm điều này:
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;
}
}
Vì vậy, đây là vấn đề:
Mỗi thread khi nó chấm dứt trả về một danh sách Tôi muốn gắn masterList tuyên bố trước đó.
Làm cách nào để thực hiện điều này?
Ngoài ra tôi biết có phải là một cách tốt hơn so với bên dưới để chờ đợi cho tất cả các chủ đề để kết thúc
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;
}
}
Ý tưởng tương tự như của tôi ... nhưng một cách trả lời tốt hơn :( –