C# Execute-Methode (mit den Parametern) mit ThreadPool

Wir haben die folgenden Stück code (Idee für diesen code wurde auf dieser website gefunden), welche die spawn neue threads für die Methode "Do_SomeWork()". Dies ermöglicht es uns, führen Sie die Methode mehrfach asynchron.

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();

Jedoch würden wir gerne nutzen, ThreadPool, anstatt unsere eigene neue threads, die kann sich nachteilig auf die Leistung. Die Frage ist, wie können wir ändern Sie den obigen code, um die Verwendung der ThreadPool-im Auge zu behalten, dass die Methode "Do_SomeWork" dauert mehrere Parameter und hat auch einen return-Typ (D. H. Methode nicht void).

Dies ist auch C# 2.0.

InformationsquelleAutor washtik | 2010-04-19
Schreibe einen Kommentar