Gibt es einen Sinn, das klassische Feld bool disposed
auf einem anderen threadsafe-Typ zu verfolgen, um eine ObjectDisposedException
am Anfang aller primär exponierten Methoden bedingt zu werfen?IDisposable, ObjectDisposedException und threadsafe-Typen
Ich habe dieses Muster an einigen Stellen online empfohlen, aber ich bin mir nicht sicher, ob die Autoren es richtig verwenden, so dass diese Frage davon ausgeht, dass sie es sind. In einem solchen Szenario scheint es so zu sein, dass die einzige Möglichkeit, sicherzustellen, dass die disposed
Bedingung über die Bewertung der Bedingung hinaus wahr ist, einen Synchronisationsmechanismus wie lock() über den gesamten Körper jedes exponierten Elements einschließlich Dispose (bool) Methode. Würde das den Typ nicht effektiv wieder single-threaded machen?
Und wenn das stimmt, dann wäre es sinnlos, es zu benutzen, und deshalb können Sie sich nicht auf den ObjectDisposedException-Mechanismus in einigen IDisposable-Implementierungen verlassen - warum würden wir diesen Mechanismus dann immer einsetzen? t notwendig?
====
Ich denke, IDisposable und ObjectDisposedException einfach nicht zusammen für thread-safe-Typen gehen.
Siehe auch: http://stackoverflow.com/questions/170028/how-would-you-simplfy-entering-and-exiting-a-readerwriterlock –