Estoy escribiendo un programa donde normalmente comienzo cinco hilos. Los hilos vuelven en un orden no determinado. Cada hilo está llamando a un método que devuelve una lista.Hilos que devuelven datos en .NET
que estoy haciendo esto:
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;
}
}
Así que aquí está el problema:
Cada hilo cuando se termina devuelve una lista me gustaría añadir el MasterList declaró anteriormente.
¿Cómo podría uno hacer esto?
También sé que debe haber una mejor manera que a continuación de esperar a que todos los hilos para terminar
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;
}
}
La misma idea que la mía ... pero una respuesta mucho mejor :( –