SpinLock и поля только для чтения - PullRequest
9 голосов
/ 11 февраля 2012

Просто читая страницу MSDN о новой .NET 4.0 функции SpinLock и не могу понять идею, стоящую за следующим утверждением:

Не хранитьЭкземпляры SpinLock в полях только для чтения.

Я чувствую, что это как-то связано со спецификой типа значения, но не уверен, как именно и почему.Кто-нибудь может пролить свет на этот вопрос?

1 Ответ

14 голосов
/ 11 февраля 2012

Основная проблема заключается в том, что компилятор C # создает копию поля типа значения readonly при вызове в нем нестатического метода и выполняет этот метод в копии - поскольку метод может имеют побочные эффекты, которые изменяют значение структуры, что недопустимо для полей readonly.

Для получения дополнительной информации см. «Мутирующие структуры только для чтения» .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...