Die Microsoft .NET Base Class Library bietet mehrere Möglichkeiten, einen Thread zu erstellen und zu starten. Grundsätzlich ist der Aufruf sehr ähnlich zu jedem anderen, der die gleiche Art von Dienst bereitstellt: Erstellen Sie ein Objekt, das einen Ausführungsablauf (oder mehrere) repräsentiert, weisen Sie ihm einen Delegaten zu, der den auszuführenden Ausführungsablauf repräsentiert, und schließlich, abhängig von der Signatur des Delegaten, ein Objekt als Parameter.
Nun, es gibt (im Wesentlichen) zwei Ansätze:
1) Mit dem System.Threading.Thread
Klasse.
Thread curr = new Thread(myfunction); /* In a class, myfunction is a void taking an object */
curr.Start(new Object()); /* Or something else to be downcast */
2) Mit Hilfe des System.Threading.ThreadPool
Klasse.
ThreadPool.QueueUserWorkItem(myfunction, new Object()); /* Same philosophy here */
Gibt es besondere Gründe, warum ich 1) oder 2) verwenden sollte?
- Leistungsgründe?
- Muster?
- Was ist der beste Ansatz?
Ich habe das Gefühl, dass die Antwort lautet: "Es kommt auf die Situation an". Könnten Sie bitte einige Situationen nennen, in denen ein Ansatz besser ist als ein anderer?
0 Stimmen
stackoverflow.com/questions/1506838/