Wie erstelle und verwende ich eine Stornierung in C#?
Erstellen Sie eine StornierungTokenSource erhält eine Stornierung, mit der andere Threads oder Komponenten zur Aufhebung des Vorgangs benachrichtigt werden. 2. Übergeben Sie das Token an eine asynchrone Methode, die die Stornierung unterstützt (wie z. B. task.run). Die Aufgabe kann regelmäßig die Stornierungsanfrage überprüfen, um eine anmutige Kündigung zu erreichen.
Mit einem in C# Stornierungen angezeigten Absender können Sie von einem Thread oder einer Komponente zu einer Operation signalisieren, die an anderer Stelle ausgeführt wird, damit sie das stoppen sollte, was er tut. Dies ist wichtig, um langlebige oder asynchrone Aufgaben anmutig abzusagen. Hier erfahren Sie, wie Sie eine richtig erstellen und verwenden.
Erstellen einer Stornierung
Das Token wird in der Regel durch eine Stornierung erstellt, die den Lebenszyklus der Stornierungsanforderung verwaltet.
- Erstellen Sie ein Stornierungsobjekt .
- Erhalten Sie das Token über sein Token -Eigentum.
- Übergeben Sie dieses Token an Methoden, die die Stornierung unterstützen.
Beispiel:
CancellationTokenSource CTS = neue StornierungTokenSource ();<br> CancellationToken token = cts.token;
Übergeben des Tokens an Aufgaben
Die meisten asynchronen Methoden in .NET (wie Task.run oder Methoden in httpclient, stream usw.) akzeptieren eine Stornierung als Parameter.
- Geben Sie das Token beim Starten des Betriebs.
- Der Betrieb kann regelmäßig prüfen, ob eine Stornierung angefordert wurde.
Beispiel mit Task.run:
Task Task = task.run (() =><br> {<br> für (int i = 0; i <100; i)<br> {<br> if (token.iscancellationRequested)<br> {<br> Console.writeLine ("Operation storniert.");<br> zurückkehren;<br> }<br> Console.WriteLine ($ "Working ... {i}%");<br> Thread.Sleep (100);<br> }<br> }, Token);
Anforderung von Stornierung
Um den Vorgang zu stornieren, rufen Sie Cancel () auf der StornierungTokenSource auf.
- Dies setzt den Tokens IscancellationRequested auf wahr.
- Es zwingt die Aufgabe nicht zum Stoppen - die Operation muss das Token überprüfen und angemessen reagieren.
Beispiel:
// nach 2 Sekunden abbrechen<br> Thread.Sleep (2000);<br> cts.cancel ();
Sie können auch CancerAfter () verwenden, um die Stornierung automatisch zu planen:
CTS.Cancelafter (2000); // In 2 Sekunden abbrechen
Reaktion auf Stornierung in asynchronen Methoden
Werfen Sie im asynchronen Code eine OperationCanceledException , wenn die Stornierung festgestellt wird, um Standardmustern zu befolgen.
Beispiel:
Async Task Doworkasync (CancellationToken Token)<br> {<br> für (int i = 0; i <100; i)<br> {<br> token.throwifcancellationRequested ();<br> Warte auf Task.Delay (100, Token); // Respect -Token verzögern<br> }<br> }
Durch die Verwendung von throwifcancellationRequested () wird ein ordnungsgemäßes Ausnahmebehandlung gewährleistet und gut in die Aufgabe und asynchronisiert/warten .
Verwenden Sie im Grunde die Stornierung , um die Stornierung zu erstellen und auszulösen, das Token an den Betrieb zu übergeben und es regelmäßig zu überprüfen, um eine anmutige Abschaltung zu ermöglichen. Es ist ein kooperatives Modell - der Empfangscode muss teilnehmen. So bleibt es sicher und vorhersehbar.
Das obige ist der detaillierte Inhalt vonWie erstelle und verwende ich eine Stornierung in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Stock Market GPT
KI-gestützte Anlageforschung für intelligentere Entscheidungen

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

In der Einheit können 3D -Physikmotoren und KI -Verhaltensbäume über C#implementiert werden. 1. Verwenden Sie die Starrbody -Komponente und addForce -Methode, um einen Scrolling -Ball zu erstellen. 2. Durch Verhaltensbaumknoten wie Patrouille und Verfolgungsschicht können KI -Charaktere so gestaltet werden, dass sie die Spieler patrouillieren und verfolgen.

Die C#.NET Developer Community bietet umfangreiche Ressourcen und Unterstützung, einschließlich: 1. Microsoft offizielle Dokumente, 2. Community -Foren wie Stackoverflow und Reddit sowie 3. Open -Source -Projekte auf GitHub. Diese Ressourcen helfen Entwicklern, ihre Programmierkenntnisse vom grundlegenden Lernen bis hin zu erweiterten Anwendungen zu verbessern.

Die Hauptunterschiede zwischen C# und c sind die Speichermanagement, die Implementierung der Polymorphismus und die Leistungsoptimierung. 1) C# verwendet einen Müllsammler, um den Speicher automatisch zu verwalten, während C manuell verwaltet werden muss. 2) C# realisiert den Polymorphismus durch Schnittstellen und virtuelle Methoden, und C verwendet virtuelle Funktionen und reine virtuelle Funktionen. 3) Die Leistungsoptimierung von C# hängt von der Struktur und der parallele Programmierung ab, während C durch Inline -Funktionen und Multithreading implementiert wird.

C# implementiert einen strukturierten Ausnahmebehandlungmechanismus durch Versuch, Fang und schließlich blockiert. Entwickler setzen mögliche Fehlercode in den Try -Block ein, fangen Sie spezifische Ausnahmen (z. B. IOException, SQLEXception) im Catch -Block und führen Sie die Ressourcenreinigung im endgültigen Block durch. 1. Spezifische Ausnahmen sollten anstelle allgemeiner Ausnahmen (wie Ausnahme) gefangen werden, um zu vermeiden, schwerwiegende Fehler zu verbergen und die Debugging -Effizienz zu verbessern. 2. Vermeiden Sie eine Übernutzungs-Versuche in der leistungskritischen Code. Es wird empfohlen, die Bedingungen im Voraus zu überprüfen oder stattdessen Methoden wie TryParse zu verwenden. 3. Lösen Sie immer Ressourcen in endgültigen Blöcken oder verwenden Sie Anweisungen, um sicherzustellen, dass Dateien, Verbindungen usw. korrekt geschlossen werden.

C#.NET wird in der modernen Welt in den Bereichen Spieleentwicklung, Finanzdienstleistungen, Internet der Dinge und Cloud Computing häufig eingesetzt. 1) Verwenden Sie in der Spielentwicklung C#, um über die Unity Engine zu programmieren. 2) Im Bereich Finanzdienstleistungen wird C#.NET verwendet, um Hochleistungshandelssysteme und Datenanalyse-Tools zu entwickeln. 3) In Bezug auf IoT und Cloud Computing unterstützt C#.NET Unterstützung durch Azure -Dienste zur Entwicklung der Gerätesteuerungslogik und der Datenverarbeitung.

CLR ist eine Laufzeit -Engine, die C# Code ausführt, die für die Ausführung von Code, Speicherverwaltung, Sicherheit und Ausnahmebehandlung verantwortlich ist. Sein Workflow ist wie folgt: 1. Der C# -Lockencode wird zunächst in eine Zwischensprache (IL) zusammengestellt, 2. Die Laufzeit -CLR wandelt IL IL in Maschinencode für eine bestimmte Plattform über Instant (JIT) -Kompilation und Caches um, um die Leistung zu verbessern. 3. Die CLR verwaltet automatisch den Speicher, weist den Objektspeicher über den Garbage Collector (GC) zu und unterstützt die Verwendung von Finalizern und verwendet Aussagen, um nicht verwaltete Ressourcen zu verarbeiten. 4. CLR Kräfte die Sicherheit vom Typ Kräfte, validiert den IL -Code, um häufige Fehler zu verhindern, und ermöglicht bei Bedarf unsichere Codeblöcke. 5. Die Ausnahmeberechnungen werden von CLR einheitlich verwaltet, und nimmt eine Versuchsfinalstruktur an

In C#eignet sich task.run besser für einfache asynchrone Operationen, während Task.factory.StartNew für Szenarien geeignet ist, in denen die Aufgabenplanung fein gesteuert werden muss. Task.run vereinfacht die Verwendung von Hintergrund-Threads, verwendet standardmäßig Thread-Pools und erfasst den Kontext nicht, das für das Senden und Vergessen von CPU-intensiven Aufgaben geeignet ist. Während Task.factory.StartNew mehr Optionen bietet, z. Der Verhaltensunterschied zwischen den beiden kann die Aufgabendauer und das Subtask -Verhalten beeinflussen. Daher sollte die geeignete Methode gemäß den tatsächlichen Bedürfnissen ausgewählt werden.

C# und .NET bieten leistungsstarke Funktionen und eine effiziente Entwicklungsumgebung. 1) C# ist eine moderne, objektorientierte Programmiersprache, die die Kraft von C und die Einfachheit von Java kombiniert. 2) Das .NET -Framework ist eine Plattform zum Erstellen und Ausführen von Anwendungen und unterstützt mehrere Programmiersprachen. 3) Klassen und Objekte in C# sind der Kern der objektorientierten Programmierung. Klassen definieren Daten und Verhalten, und Objekte sind Instanzen von Klassen. 4) Der Müllsammlungsmechanismus von .NET verwaltet automatisch Speicher, um die Arbeit der Entwickler zu vereinfachen. 5) C# und .NET liefern leistungsstarke Dateibetriebsfunktionen, die synchrone und asynchrone Programmierungen unterstützen. 6) Häufige Fehler können durch Debugger, Protokollierung und Ausnahmebehandlung gelöst werden. 7) Leistungsoptimierung und Best Practices umfassen die Verwendung von StringBuild
