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

Ansehen: 19792|Antwort: 0

[Quelle] Verwendung von SyncRoot in StringDictionary

[Link kopieren]
Veröffentlicht am 23.11.2016 14:26:38 | | | |

C#-objektorientierte Programmierung bietet viele benutzerfreundliche Operationsklassen, dieses StringDictionary ist eine Sammlung von Klassen, die sich darauf spezialisiert haben, Strings als Schlüssel und Werte zu speichern. Die Bedeutung dieser Klasse lautet: C# weiß, dass diese Zeichenkette im Wertetyp ziemlich weit verbreitet ist, andere Werttypen können ebenfalls in entsprechende Stringtypen umgewandelt werden, das ist die Bedeutung dieser Sammlung, aber man kann auch andere Collection-Objekte verwenden, um sie zu ersetzen, aber achte auf einen Punkt, Handelt es sich um String-Speicher, kann dies den Speicherverlust reduzieren und die Zeit verkürzen, die für das Ausführen des Programms benötigt wird.


SyncRoot kann verwendet werden, um den Zugriff auf das StringDictionary zu synchronisieren

Um es klar zu sagen: Es ist das Konzept von Lock, schreiben wir ein Programm, um es zu testen:

Der Code lautet wie folgt:



Wir haben zwei Threads gleichzeitig, um Daten zum StringDictionary-Wörterbuch hinzuzufügen,

Die Ausführungszeitdifferenz zwischen dem ersten und dem zweiten Thread beträgt eine Sekunde, um die Zeitdifferenz zu vergrößern und zu verhindern, dass die Ausführung zu schnell ist.

Man sieht, dass die Threads zu den beiden Methoden gegangen sind, und beim Hinzufügen des zweiten Datenstücks warten sie darauf, dass die ersten Daten hinzugefügt werden, bevor sie die zweiten Daten hinzufügen, und die Additionszeit ist sehr schnell.

Im Folgenden werden wir es anders schreiben, um es verständlicher zu machen:





3 Threads werden geöffnet, die Daten werden hinzugefügt, und die 3 Threads werden fast gleichzeitig ausgeführt, aber wenn die Daten hinzugefügt werden, liegen jeweils 10 Sekunden auseinander.

Zusammenfassend lässt sich sagen, dass wir beim Multithread-Zugriff SyncRoot nutzen können, um die Sicherheit des Threads sicherzustellen




Vorhergehend:Wie man den WPF-Trigger benutzt, um die Tasten zu wechseln
Nächster:c# Verwenden Sie OCR, um chinesische Bilder zu erkennen
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