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