Heim >Backend-Entwicklung >C#.Net-Tutorial >Sperren Sie C# ein
Das Sperrkonstrukt in C# stellt sicher, dass kein anderer Thread in den Codeabschnitt gelangen kann, in dem ein Thread bereits ausgeführt wird. Dadurch wird der andere Thread, der versucht, in den Codeabschnitt einzutreten, warten oder blockieren, bis der ausführende Thread seine Ausführung abgeschlossen hat. Die Verwendung einer Sperre ist eine schnellere und bequemere Möglichkeit, Threads in der Multithreading-Programmierung zu verarbeiten.
Syntax
lock(object_name) statement_block
Wo,
Die Beispiele finden Sie unten.
C#-Programm zur Demonstration der Sperre, um die Ausführung eines anderen Threads zu blockieren, während ein Thread bereits im kritischen Abschnitt des Codes ausgeführt wird:
Code:
using System; using System.Threading; //a namespace called program is defined namespace program { //a class called check is defined class check { //an object that defines a lock is created static readonly object lockname = new object(); //a method called display is created in which the lock is used to make any other threads trying to access the method wait or block until thread that is already executing completes its execution static void display() { //keyword lock is used to lock the object lock (lockname) { for (int a = 1; a <= 3; a++) { //the output is displayed synchronously in a row by one thread followed by another thread because we have used lock on display method Console.WriteLine("The value to be printed is: {0}", a); } } } static void Main(string[] args) { //an instance of the thread is created and the corresponding thread is executed on the display method Thread firstthread = new Thread(display); //an instance of the thread is created and the corresponding thread is executed on the display method Thread secondthread = new Thread(display); firstthread.Start(); secondthread.Start(); Console.ReadLine(); } } }
Ausgabe:
Erklärung: Im obigen Programm definiert das Programm einen Namensraum namens „Programm“. Anschließend wird eine Klasse mit dem Namen „check“ definiert. Diese Methode nutzt die Sperre, um alle anderen Threads, die versuchen, darauf zuzugreifen, warten oder blockieren zu lassen, bis der aktuell ausgeführte Thread seine Ausführung beendet. Der Schnappschuss oben zeigt die Ausgabe.
C#-Programm zur Demonstration der Sperre, um die Ausführung eines anderen Threads zu blockieren, während ein Thread bereits im kritischen Abschnitt des Codes ausgeführt wird:
Code:
using System; using System.Threading; //a namespace called program is defined namespace program { //a class called check is defined class check { //an object that defines a lock is created static readonly object lockname = new object(); //a method called display is created in which the lock is used to make any other threads trying to access the method wait or block until thread that is already executing completes its execution static void display() { //keyword lock is used to lock the object lock (lockname) { for (int a = 1; a <= 3; a++) { //the output is displayed synchronously in a row by one thread followed by another thread because we have used lock on display method Console.WriteLine("The first three lines are printed by first thread and the second three lines are printed by the second thread"); } } } static void Main(string[] args) { //an instance of the thread is created and the corresponding thread is executed on the display method Thread firstthread = new Thread(display); //an instance of the thread is created and the corresponding thread is executed on the display method Thread secondthread = new Thread(display); firstthread.Start(); secondthread.Start(); Console.ReadLine(); } } }
Ausgabe:
Erklärung: Das Programm definiert einen Namespace namens „Programm“ und definiert dann eine Klasse namens „Check“. Es erstellt ein Objekt, das eine Sperre darstellt. Es verwendet das Schlüsselwort „lock“, um das zuvor erstellte Objekt zu sperren.
In diesem Tutorial verstehen wir das Konzept des Lock-in-C# durch Definition, Syntax und Funktionsweise der Sperre anhand von Programmierbeispielen und deren Ausgaben.
Das obige ist der detaillierte Inhalt vonSperren Sie C# ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!