Der folgende Artikel enthält eine Übersicht für den C#-Thread. Der Ausführungspfad des Programms ist als Thread definiert und jeder Thread definiert einen eindeutigen Kontrollfluss. Wenn die Anwendung komplizierte und zeitaufwändige Vorgänge umfasst, müssen verschiedene Ausführungspfade oder Threads festgelegt werden, wobei jeder Thread für einen bestimmten Job verantwortlich ist. Diese Thread-Prozesse sind leichtgewichtig und die modernen Betriebssysteme implementieren die gleichzeitige Programmierung. Dies ist eines der Beispiele für die Verwendung von Threads. Durch die Verwendung von Threads werden Zyklusverluste der zentralen Verarbeitungseinheit eingespart und die Effizienz der Anwendung erhöht.
Syntax:
1 |
|
Die Zeit, zu der ein Objekt der System.Threading.Thread-Klasse erstellt wird, wenn der Lebenszyklus des Threads beginnt. Wenn der Thread beendet oder die Ausführung des Threads abgeschlossen ist, wird der Thread erstellt und beendet.
Es gibt mehrere Zustände im Lebenszyklus eines Threads.
1. Der nicht gestartete Zustand: Dieser Zustand ist eine Situation, in der die Startmethode nicht aufgerufen, aber eine Instanz des Threads erstellt wird.
2. Der Bereitschaftszustand: Dieser Zustand ist eine Situation, in der der Thread vollständig auf die Ausführung eingestellt ist und auf den Zyklus der Zentraleinheit wartet.
3. Der Status „Nicht ausführbar“: Dieser Status ist eine Situation, in der der Thread nicht ausgeführt werden kann, wenn:
4. Der tote Zustand: Dieser Zustand ist eine Situation, in der die Ausführung des Threads abgeschlossen ist oder die Ausführung des Threads abgebrochen wird.
Das folgende Programm demonstriert die Ausführung des Hauptthreads:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
Ausgabe:
Im obigen Programm wird ein Namespace namens Multithreading erstellt. Anschließend wird eine Klasse namens mainthread im Multithreading-Namespace erstellt. Dann wird eine Hauptmethode aufgerufen. Anschließend wird eine Instanz der Thread-Klasse erstellt. Dann wird über die Instanz der Thread-Klasse auf die Name-Methode der Thread-Klasse zugegriffen. Abschließend wird die Ausgabe auf dem Bildschirm angezeigt.
Im Folgenden sind die verschiedenen Methoden der Thread-Klasse aufgeführt:
Immer wenn die Abort()-Methode für einen Thread aufgerufen wird, wird ThreadAbortException ausgelöst und der Prozess der Beendigung des Threads beginnt. Die Beendigung des Threads wird durch den Aufruf dieser Methode verursacht.
Beispiel:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
Ausgabe:
Immer wenn die Interrupt()-Methode aufgerufen wird, wird ein Thread, der sich im Thread-Status von WaitSleepJoin befindet, unterbrochen.
Immer wenn die Join()-Methode aufgerufen wird, wird ein aufrufender Thread blockiert, bis ein Thread beendet wird und das Standard-COM- und SendMessage-Pumpen zusammen mit der Blockierung des Threads weiter ausgeführt wird.
Beispiel zur Implementierung von Interrupt() und Join():
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
Ausgabe:
Immer wenn die ResetAbort()-Methode aufgerufen wird, wird die Beendigungsanforderung für den aktuellen Thread abgebrochen.
Beispiel:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
Ausgabe:
Immer wenn die Methode Start() aufgerufen wird, wird ein Thread gestartet.
Beispiel:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Ausgabe:
Immer wenn die Sleep(int millisecondsTimeout)-Methode aufgerufen wird, wird der Thread für den angegebenen Zeitraum angehalten.
Beispiel:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Ausgabe:
Whenever Suspend() method is called, the current thread is suspended if it is not suspended.
Whenever Resume() method is called, the suspended thread is resumed.
Whenever Yield() method is called, the calling thread must result in execution to the other thread which is ready to start running on the current processor. The thread to yield to is selected by the operating system.
Example to implement Suspend() Resume() and Yield()
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
Output:
Das obige ist der detaillierte Inhalt vonC#-Thread. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!