Есть ли случай, в котором volatile может быть полезен в контексте однопоточного программирования? Я знаю, что он используется, чтобы убедиться, что значение переменной всегда действительно проверяется в памяти, поэтому есть ли случай, когда это значение может измениться (в приложении ST) так, что приложение / компилятор не заметит?
Является ли volatile вообще полезным в однопоточном приложении на C #?
Ответы (1)
Нет, в этом нет необходимости. Он используется для синхронизации содержимого памяти между потоками, что, если у вас только один, не имеет смысла.
person
Zbynek Vyskovsky - kvr000
schedule
04.02.2016
volatile
полезен даже в однопоточных приложениях для обозначения того, что конкретная область памяти (переменная) может быть доступна извне (например, через оборудование) и что она не должна кэшироваться в ЦП. Не уверен, что это переводится на C #. - person Qix - MONICA WAS MISTREATED   schedule 04.02.2016IntPtr
может не быть изменчивым, но оно может указывать на массив байтов, который представляет собой указатель, и это значение может быть изменено. что-то вроде int ** ptr = & ptr, версия C #, где ptr может быть изменен из другого процесса - person David Haim   schedule 04.02.2016