Wie laufen zwei Threads parallel?

8

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?

%Vor%     
Mou 14.04.2015, 11:57
quelle

4 Antworten

7

So erreiche ich mein Ziel. Hier ist der Code

%Vor%

Ich habe ein weiteres schönes Beispiel für eine Task-Bibliothek von dieser URL erhalten Ссылка .

hier ist der Code

%Vor%     
Mou 14.04.2015, 13:11
quelle
4

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

    
Alex 14.04.2015 12:36
quelle
3

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

    
msc0087 22.12.2017 07:47
quelle
2

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%     
bytecode77 14.04.2015 12:32
quelle

Tags und Links