Ich schreibe derzeit eine C# -Anwendung. Ich bin neu in der Verwendung eines ConcurrentDictionary, also haben einige Fragen rund um die Thread-Sicherheit. Erstens, das ist mein Wörterbuch:einige Fragen rund um die Verwendung von ConcurrentDictionary
/// <summary>
/// A dictionary of all the tasks scheduled
/// </summary>
private ConcurrentDictionary<string, ITask> tasks;
ich instanziiert dies in meiner Klasse und verwenden es alle meine Objekte zu verfolgen, die ITask implementieren. Ich möchte sicherstellen, dass mein Setup in einer Umgebung mit mehreren Threads ordnungsgemäß funktioniert.
Wenn mehrere Threads die Anzahl der Elemente im ConcurrentDictionary abrufen möchten, muss ich sie dann sperren?
Wenn ich einen bestimmten Schlüssel aus dem Wörterbuch erhalten möchte, holen Sie das Objekt dieses Schlüssels und rufen Sie eine Methode auf, muss ich es sperren? Beispiel:
Mehrere Threads könnten die Run-Methode aufrufen, um die Execute-Methode von ITask aufzurufen. Mein Ziel ist es, alles so sicher und so performant wie möglich zu machen.
ist die '.count' Eigenschaft threadsicher? oder die '.Count()' Methode? Was ist der Unterschied? – Zapnologica