Ответ 1
Я знаю, что поля ThreadStatic не нуждаются в синхронизации, потому что состояние не используется. Но что такое статический приемник и инициализация?
Для этого также не требуется блокировка для синхронизации, поскольку данные (поле поддержки) будут уникальными для каждого потока. Вы можете безопасно удалить блокировку здесь.
Обратите внимание, что с .NET 4 вы можете также использовать ThreadLocal<T>
вместо [ThreadStatic]
для хранения любых данных локального потока. Есть несколько преимуществ, как с точки зрения использования (например: IsValueCreated
), так и очистки, так как вы можете вызвать Dispose()
для очистки всех экземпляров на все потоки напрямую.