Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 57872|Antwort: 7

[Quelle] c# kapselt eine universelle QueueHelper-Warteschlange

[Link kopieren]
Veröffentlicht am 29.08.2018 10:39:11 | | | |
In der täglichen Entwicklung verwenden wir möglicherweise Warteschlangen, eine Speicherstruktur, die "First-in, first-out" erreichen kann.

Anwendungsszenarien: Protokolle schreiben, E-Mails versenden usw

Wenn wir das Schnittstellenprotokoll jedes Benutzers, der unsere Daten anfordert, aufzeichnen müssen, müssen wir nicht jedes Mal ein Protokoll schreiben, wenn der Benutzer es anfordert, sondern können den Protokollinhalt in die Warteschlange legen und andere Threads ausführen lassen, um die Effizienz der Anwendung nicht zu beeinträchtigen.

Ein weiterer Vorteil besteht darin, dass das Hinzufügen von Daten zur Warteschlange im Falle von Nebenläufigkeit, indem ein einzelner Thread die Daten der Warteschlange ausführt, viele Ausnahmen vermeiden kann; bei Nebenläufigkeit (Multithreaded) verursacht der Zugriff auf dieselbe physische Datei Ausnahmen. (vorbehaltlich Verfügbarkeit)

Warteschlangen-Universal-Ansatz:

Dies ist eine abstrakte Klasse, und du musst diese Abstraktionsklasse erben und die Execute-Abstraktionsmethode implementieren. Da ich nicht weiß, welche Art von Daten du verarbeiten möchtest, werden hier Generiken verwendet, das heißt, Entität ist vom Stringtyp, die Methodenparameter sind vom Stringtyp, und die Daten, die du bearbeitest, sind Stringtyp-Daten.

Die threadsichere Warteschlange von ConcurrentQueue stellt sicher, dass es in einer Multi-Thread-Umgebung keine Ausnahmen gibt.

ManualResetEvent, um das Signal des Threads zu steuern,Früher haben wir die Warteschlange alle paar Sekunden oder Minuten auf Daten überprüftJetzt fügen wir die Daten in die Warteschlange hinzu und müssen nur noch ein Signal weitergeben!

Verwendung:

(Ende)




Vorhergehend:Einrichten Projektinstallationspaket-Produktionsprozess Ich möchte die primäre Ausgabedatei kopieren, Frage
Nächster:Die Ausgabe des Redis-Chinesischen kann nicht richtig dargestellt werden
 Vermieter| Veröffentlicht am 24.05.2019 10:13:59 |
Empfehlen Sie ein Rahmenwerk:

asp.net Hintergrundaufgaben-Hangfire-Framework-Tutorial
https://www.itsvse.com/thread-7611-1-1.html
(Quelle: Architect_Programmer)
Veröffentlicht am 10.09.2019 10:26:26 |
Warum wird die Execute-Methode in der Testklasse nicht ausgeführt, wenn ich sie ausführe?
 Vermieter| Veröffentlicht am 10.09.2019 21:52:44 |
hano7758 Veröffentlicht am 10.9.2019 10:26
Warum wird die Execute-Methode in der Testklasse nicht ausgeführt, wenn ich sie ausführe?

Kannst du deinen Code posten?
 Vermieter| Veröffentlicht am 23.01.2021 11:53:46 |
.NET/C# basiert auf der BlockingCollection-Hintergrund-Task-Warteschlange
https://www.itsvse.com/thread-9528-1-1.html

Veröffentlicht am 26.07.2021 14:09:53 |
Wie kannst du den Code sehen?
Veröffentlicht am 26.09.2022 22:20:08 |
Ich muss lernen, wie man es benutzt
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com