Ich habe eine Multi-Thread-C# -Anwendung. Es gibt ein Wörterbuch, auf das von N verschiedenen Threads zur gleichen Zeit zugegriffen wird. 99% der Anrufe sind von Thread A und der Rest ist von B, C, ...C# Threading-Leistung, ein Thread 99% der Zeit
Im Moment schließe ich nur das Wörterbuch bei jedem Zugriff. Aber es scheint verschwenderisch, denn 99% der Zeit, die ich anrufe, sperren, Thread A hat bereits das Schloss.
Was wäre ein effizienterer Weg dies zu tun?
Vielleicht eine Art .Begin und .End-Aufrufe könnten für die Threads B, C, ... erforderlich sein, und dann müsste Thread A bei jedem Aufruf nur ein Bit prüfen, um festzustellen, ob einer der anderen Threads verwendet wird das Wörterbuch. Hat jemand ein Codebeispiel von sowas threadsicher implementiert?
Siehe auch http://stackoverflow.com/questions/157933/whats-the-best-way-of-implementing-a mit -thread-safe-dictionary-in-net –