C# Multithreading

C# Multithreading
Ein Thread soll ein leichter Prozess, eine Aufgabe oder ein Ausführungspfad eines Codes oder Programms sein. Themen werden verwendet, um eine bestimmte Aufgabe oder einen bestimmten Job auszuführen und ihre Kontrolle zu haben. Das Konzept des Multithreading kommt an, wenn wir einen großen Thread in kleine Threads teilen, damit sie gleichzeitig ausgeführt werden. Auf diese Weise kann die Arbeitsbelastung verwaltet und Komplexität vermieden werden. Innerhalb der C# -Programmierung wurden uns das „System“ zur Verfügung gestellt.Fäden.Thread ”-Klasse zur Durchführung von Multithreading durch die Verwendung seiner nützlichen Funktionen. Dieser Artikel ist für jeden C# -Benutzer, der keine Erfahrung im Multithreading hat und seine Grundlagen lernen möchte. Fangen wir jetzt an.

Beispiel # 01: Der Haupt -Thread

Sie können das aktuelle Arbeitsverzeichnis überprüfen, um Ihre neu generierte Datei zu durchsuchen. Öffnen Sie Ihre neue C# -Datei in einem der verfügbaren Redakteure von Ihrem Ubuntu 20.04 System. Wir haben es innerhalb des Redakteurs „Text“ geöffnet, da es für Anfänger sowie für Experten sehr bequem zu verwenden ist. Wie das Thema schon sagt, werden wir das Konzept des Multithreading diskutieren. Wenn wir ein Objekt der „Thread“ -Klasse erstellen, erstellen wir einen untergeordneten Thread des aktuell ausführenden Threads. Wenn Sie das Objekt verwenden möchten, um den Namen eines übergeordneten Threads anzugeben, müssen Sie die Eigenschaft „CurrentThread“ der Thread -Klasse verwenden.

In unserem ersten Beispiel werden wir uns die Eigenschaft „CurrentThread“ der Thread -Klasse von C# ansehen. Wir beginnen unseren ersten Beispielcode mit der Initialisierung der „System“ -Bibliothek und des Systems „System“.Threading ”Klasse. Wir haben einen Namespace mit dem Namen "Multithread" erstellt und darin eine Klasse "Threading" erstellt. Die main () -Funktion dieser Klasse wurde mit der Initialisierung des Objekts der „Thread“ -Klasse gestartet, während die Eigenschaft „CurrentThread“ darin verwendet wird. Jetzt zeigt das Objekt auf den übergeordneten Thread.

Wir haben das übergeordnete Thread -Objekt "T" verwendet, um die Eigenschaft "Name" der Thread -Klasse aufzurufen, um den Namen eines aktuellen Threads zu erhalten.e. der main () thread. Wir haben ihm den Namen "Haupt" gemäß dem folgenden Code gegeben. Die Funktion writeLine () aus der Konsolenklasse wird verwendet, um den Namen eines übergeordneten Threads auf unserem Terminalbildschirm anzuzeigen, indem die Eigenschaft "Name" per "T" -Fjekt der Thread -Klasse aufgerufen wird.

Der allererste Schritt nach dem Speichern unseres Code besteht darin, den C# Code zu kompilieren. Dafür muss Ihr System den C# "MCS" -Kompiler eingebaut haben. Nach dem Kompilieren dieser Datei mit "MCS" wird die Code "EXE" -Datei automatisch im aktuellen Arbeitsverzeichnis von Ubuntu 20 generiert.04. Wir müssen diese "EXE" -Datei verwenden, um den Code mit der Laufzeitanweisung "Mono" für C# auszuführen. Nachdem wir es ausgeführt haben, haben wir festgestellt, dass der „Haupt“ -Thread ausgeführt wird.

Beispiel # 02: Erstellen eines untergeordneten Threads

Werfen wir einen Blick auf die Erstellung eines neuen Threads unter Verwendung einer „nicht statischen“ Datenfunktion im Code. Dafür haben wir dieselbe Struktur eines C# Code i verwendet.e. Die Verwendung der „System“ -Bibliothek und des Systems „System“.Threading ”Klasse. Wir haben zwei Klassen i erstellt i.e. MyThread und neu. Die Ausführung dieses Codes wird aus der neuen Klasse gestartet, da er den Main () -Funktionsthread enthält. Die Konsole.Die Aussagen von WriteLine () zeigen uns, dass die Funktion main () ausgeführt wird.

Danach wurde das Objekt "T1" einer "MyThread" -Klasse erstellt. Diese Objekterstellung bedeutet nicht, dass wir ein Thread -Objekt erstellt haben. Dieses Objekt wird verwendet, um die MyThread -Klassenfunktionen aufzurufen. Das Thread -Klasse -Objekt "T" wurde erstellt, um einen neuen Thread zu erstellen. Während die ThreadStart -Eigenschaft dieser Thread -Klasse verwendet wurde, um die Funktion „Threading“ aus der "MyThread" -Klasse als neuer Thread zu starten.

Das Objekt "T1" nimmt seine Funktion in den Parametern der Funktion "Threadstart" als Start für einen neuen Thread auf. Sie müssen das Objekt "T" verwenden, um die Funktion "Start" der Thread -Klasse aufzurufen, um die Ausführung eines neuen Threads zu starten. Die Funktion von Threading () der MyThread -Klasse wird also ausgeführt. Es ist für die Schleife 5 -mal ausgeführt und zeigt an, dass die Thread -Funktion ausgeführt wird. Der Code ist jetzt abgeschlossen. Mal sehen, wie es funktioniert.

Nachdem wir unsere C# "CS "- und" EXE "-Dateien zusammengestellt und ausgeführt haben. Der untergeordnete Thread aus der Kurs „MyThread“ wurde 5 Mal gemäß der "für" -Schloop ausgeführt.

Beispiel # 03: Mehr als ein Thread

Das obige Beispiel ging um die Erstellung eines einzelnen Fadens. In diesem Beispiel werden wir die Verwendung statischer Funktionen diskutieren, um mehr als 1 untergeordnete Thread im Programm zu erstellen. Also haben wir zwei Klassen mit den gleichen Namen erstellt wie ich.e. Myhread und neu. Die neue Klasse enthält die einzige Main () -Methode, mit der zwei Objekte T1 und T2 für die Thread -Klasse erstellt werden können, um neue untergeordnete Threads zu erstellen.

Diese Objekte haben die Funktionen von Threading1 () und Threading2 () der MyThread -Klasse verwendet, um sie als neue untergeordnete Threads zu erstellen. Die Funktion „start ()“ der Thread -Klasse wurde verwendet, um die Funktion der Threading1 () und Threading2 () mit den T1- und T2 -Thread -Objekten zu starten. Da beide Thread -Funktionen statisch sind, kann der zweite Thread erst gestartet werden, bis der erste seine Ausführung abgeschlossen hat. Beide Threads haben ihre Aussagen dreimal ausgeführt und der Code wird beendet.

Nach dem Ausführen dieses kompilierten Codes zeigt die Ausgabe die Ausführung beider Threads getrennt an.

Beispiel # 04: Thread abbrechen

Die Thread -Klasse hat die Funktion abort (), um die Threads zu beenden. Es verwendet die Threadabortexecption, um die Beendigung durchzuführen. Schauen wir uns das an, indem wir zwei Klassen erstellen, MyThread und neu,. Die main () -Funktion begann mit der Erstellung „T“ für die MyThread -Klasse mit dem Namen „Thread“ für die MyThread -Klasse.

Der Konstruktor der MyThread -Klasse begann mit der Funktion „T1 -T1“ mit der Funktion „Startthread“ in seinen Parametern mit der Ausführung und initialisierten ein neues Kinderfaden mit dem Thread -Klasse "T1". Der Name wurde der Namenseigenschaft zugewiesen und der Thread wurde begonnen. Die Funktionen „Startthread“ beginnen mit einer Anweisung "Try-Catch". Die Anweisung "Try" wird weiter ausgeführt, bis der Modul eines Wertes in seiner Schleife um 7 gleich 0 ist. Wo die Ausnahme geschieht, wird die Erklärung von Catch () die Abbruchausnahme auswerfen.

Nachdem wir diesen Code ausgeführt haben, haben wir den Thread bis zum Wert 49 ausgeführt und mit Code 300 gekündigt. Der Thread wurde aufgrund der Erklärung "if" und der Konsole abgebrochen.Die Erklärung von Writeline () Bevor die Erklärung catch () vermieden wurde.

Abschluss

Dieser Leitfaden ist ein Muss für jeden C#-Benutzer, der die Grundlagen des Multithreading lernen möchte. Wir haben die Verwendung der Thread -Klasse in C#gründlich erklärt, um Threads zu erstellen und sie mit dem aktuellen Thread und der Eigenschaft "Name" zu benennen. Wir haben die Verwendung von Objekterstellung von Thread -Klassen zum Erstellen eines einzelnen Threads oder mehreren Threads gleichzeitig besprochen und diese mit der Funktion „Start“ der Thread -Klasse starten. Wir haben auch gesehen.