Ich starte zwei Threads mit einem Knopfklick und jeder Thread ruft eine separate Routine auf und jede Routine wird den Thread-Namen und den Wert von i
ausgeben.
Das Programm läuft perfekt, aber ich sah Thread1()
function zuerst laufen und dann Thread2()
routine startet, aber ich versuche Thread1()
und Thread2()
beide parallel laufen zu lassen. Wo mache ich einen Fehler?
Sie laufen parallel. Hier ist der angepasste Code, um es besser zu sehen:
%Vor%Und hier ist Ausgabe: DoneThread1 1Thread2 1Thread1 2Thread2 2Thread1 3Thread2 3Thread1 4Thread2 4Thread1 5Thread2 5Thread1 6Thread2 6Thread1 7Thread2 7Thread1 8Thread2 8Thread1 9Thread2 9Thread1 10Thread2 10
Sie können die Parallel.Invoke () -Methode verwenden. Aber es funktioniert nur mit .Net 4 und höher.
%Vor%Ausgabe (Nicht für alle Systeme gleich): Screenshot
Sie laufen parallel, beginnen aber mit einer Zeitverzögerung, die größer ist als die Laufzeit jedes Threads. Wirf eine Verzögerung nach jedem Console.WriteLine
ein und du wirst sehen.
Übrigens ist der elegantere Weg, einen neuen Thread zu starten,
%Vor%Tags und Links c# multithreading