MSDN достаточно хорошо документирует безопасность потоков экземпляров, входящих в типы BCL, но я никогда не видел информации, указывающей, как метод Dispose
для типов IDisposable
может быть вызван.
Является ли метод Dispose
a) гарантированно поточно-ориентированным для всех классов, b) никогда не гарантированно поточно-ориентированным, c) гарантированно поточно-ориентированным для некоторых классов (если да, то где это конкретно задокументировано)?
Наконец, если метод Dispose
гарантированно является поточно-ориентированным, Означает ли это, что я должен заблокировать каждый метод экземпляра в классе, который использует одноразовые ресурсы?
Дополнительный момент: я знаю, что финализаторы для типов должны быть поточно-ориентированными из-за того, как работает сборка мусора. NET (довольно агрессивно), и они потенциально могут вызвать метод Dispose
. Тем не менее, давайте оставим этот вопрос в стороне.