Wir haben das folgende Stück Code (Idee für diesen Code wurde auf dieser Website gefunden), die neue Threads für die Methode "Do_SomeWork()" spawnen wird. Dadurch können wir die Methode mehrmals asynchron ausführen.C# Execute Methode (mit Parametern) mit ThreadPool
Der Code ist:
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();
Allerdings würden wir die Verwendung von Threadpool machen möchten, anstatt unsere eigene, neue Themen zu schaffen, die die Leistung beeinträchtigen können. Die Frage ist, wie wir den obigen Code ändern können, um ThreadPool zu verwenden, wobei wir berücksichtigen, dass die Methode "Do_SomeWork" mehrere Parameter verwendet und auch einen Rückgabetyp hat (d. H. Methode ist nicht void).
Auch dies ist C# 2.0.
Ich denke nur, wenn seine wirklich so cool Ihre Methoden auf den Rückruf während vorbei null Objekte/tasksInfo laufen – electricalbah