Te recomendamos que revises esta resolución en un entorno controlado antes de pasarlo a producción, un saludo.
Solución:
Más o menos de la misma manera, pero use un WaitCallback pasado a ThreadPool.QueueUserWorkItem:
var numThreads = 20;
var toProcess = numThreads;
var resetEvent = new ManualResetEvent(false);
for (var i = 0; i < numThreads; i++)
ThreadPool.QueueUserWorkItem (
new WaitCallback(delegate(object state)
Do_SomeWork(Parameter1, Parameter2, Parameter3);
if (Interlocked.Decrement(ref toProcess) == 0) resetEvent.Set();
), null);
resetEvent.WaitOne();
Recuerda que puedes permitirte valorar este ensayo si diste con el arreglo.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)