Является ли статический класс и его члены потокобезопасными? [в С#.NET]

Потокобезопасность для статического класса и его членов: - Все ли члены статического класса потокобезопасны?


person SO19    schedule 16.01.2013    source источник
comment
какой язык программирования?   -  person JustMaximumPower    schedule 16.01.2013
comment
Спасибо @JustMaximumPower. Вопрос отредактирован.   -  person SO19    schedule 16.01.2013
comment
взгляните на stackoverflow.com/questions /5839974/   -  person JustMaximumPower    schedule 16.01.2013


Ответы (1)


Статические конструкторы являются потокобезопасными — они гарантированно будут запускаться только один раз для каждого домена приложения, прежде чем будут созданы какие-либо экземпляры класса или будут доступны какие-либо статические члены.

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

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

person Andrey Taptunov    schedule 16.01.2013