Является ли C # 6? (Элвис оп) Поток безопасен? Если да, то как?
Заранее извиняюсь: этот вопрос задан жестким, нереформированным разработчиком C ++, пытающимся изучить продвинутый C #. Учтите следующее:
if (myUserDefinedObject != null)
{
myUserDefinedObject.ToString();
}
Это явно не потокобезопасно. С другой стороны, я видел два урока, которые говорят? (нулевой условный оператор или «оператор Элвиса»), например,
myUserDefinedObject?.ToString();
ЯВЛЯЕТСЯ Поток безопасно. Если компилятор не закроет блокировку [mutex?] Вокруг него под крышками (дрожь), я не понимаю, как это может быть правдой. Если эта идиома поточнобезопасна, может кто-нибудь указать мне техническое описание того, как этого добиться? Если это не потокобезопасно, есть ли у кого-нибудь ссылка, которая на самом деле говорит, что это не так?