2013-09-22 3 views
2

Для многих классов в рамках .NET, MSDN описывает безопасность THEAD как:В .Net многие классы являются потокобезопасными, если они статичны, как это реализовано?

Любые открытые (Shared в Visual Basic) члены этого типа являются поточно. Любые члены экземпляра не гарантируют, что это будет поток .

Как это реализовано? есть ли там синтаксический сахар? или он каким-то образом реализован внутри класса?

Спасибо.

+1

Я всегда стараюсь взломать сборку с помощью [ILSpy] (http://ilspy.net/), чтобы увидеть, происходят ли чудеса ... – rene

+0

Если это просто шаблонный текст, который копируется/вставляется в каждую статью MSDN. Это часто неточно. –

ответ

2

Это всего лишь деталь реализации этих классов. Это просто означает, что разработчики для этих статических методов позаботились о любых проблемах безопасности потоков.

Это не язык или структура, которые статические методы являются потокобезопасными.

+1

Это руководство библиотеки, что статические элементы должны быть потокобезопасными. Это действительно не то, что происходит автоматически. –

+0

@Knagis - это не статический метод, это экземпляры методов экземпляров, хранящихся в статических членах, или я неправильно понял? –

+2

Вы неправильно поняли документ MSDN. Он говорит точно наоборот: эти методы экземпляров не будут потокобезопасными. –