Tenemos el siguiente fragmento de código (la idea para este código se encontró en este sitio web) que engendrará nuevos hilos para el método "Do_SomeWork()". Esto nos permite ejecutar el método varias veces de forma asíncrona.Método de ejecución C# (con parámetros) con ThreadPool
El código es:
var numThreads = 20;
var toProcess = numThreads;
var resetEvent = new ManualResetEvent(false);
for (var i = 0; i < numThreads; i++)
{
new Thread(delegate()
{
Do_SomeWork(Parameter1, Parameter2, Parameter3);
if (Interlocked.Decrement(ref toProcess) == 0) resetEvent.Set();
}).Start();
}
resetEvent.WaitOne();
Sin embargo nos gustaría hacer uso de ThreadPool en lugar de crear nuestros propios nuevos temas que pueden ser perjudiciales para el rendimiento. La pregunta es cómo podemos modificar el código anterior para hacer uso de ThreadPool teniendo en cuenta que el método "Do_SomeWork" toma múltiples parámetros y también tiene un tipo de devolución (es decir, el método no es nulo).
Además, esto es C# 2.0.
Sólo de pensar si es realmente tan fresco para ejecutar sus métodos en la devolución de llamada transferencia de objetos nulos/tasksInfo mientras – electricalbah