Nous avons le code suivant (l'idée pour ce code a été trouvée sur ce site) qui engendrera de nouveaux threads pour la méthode "Do_SomeWork()". Cela nous permet d'exécuter la méthode plusieurs fois de manière asynchrone.C# Exécuter la méthode (avec les paramètres) avec ThreadPool
Le code est:
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();
nous aimerions toutefois utiliser ThreadPool plutôt que de créer nos propres nouveaux fils qui peuvent nuire à la performance. La question est comment pouvons-nous modifier le code ci-dessus pour utiliser ThreadPool en gardant à l'esprit que la méthode "Do_SomeWork" prend plusieurs paramètres et a également un type de retour (c'est-à-dire que la méthode n'est pas vide).
En outre, ceci est C# 2.0.
Il suffit de penser si son vraiment cool pour exécuter vos méthodes sur le rappel tout en passant des objets null/tasksInfo – electricalbah