C# Jitter: Читать введение

Если у вас есть подобная конструкция, это кажется возможным в соответствии со связанной статьей ( https://msdn.microsoft.com/en-us/magazine/jj883956.aspx параграф Прочтите Введение)...

var temp = myRef;
temp.DoSomething1();
//... at a later time
temp.DoSomething2();

... эта временная переменная оптимизируется джиттером при прочтении введения.

Вопрос: есть ли способ гарантировать, что я действительно работаю с копией ссылки, а не с введенным чтением оригинальной ссылки. Поскольку в моей программе myRef может все время изменяться путем назначения нового объекта, мне нужно убедиться, что я обращаюсь к одному и тому же объекту в течение всей функции всякий раз, когда мне нужно что-то сделать с объектом.

Как насчет:

  • temp = Thread.VolatileRead (myRef)
  • temp = Volatile.Read (myRef)
  • temp = CompareExchange (myRef, null, null);

Может ли случиться так, что джиттер несколько раз вызывает одну из операций чтения, вместо этого создавая копию ссылки?

0 ответов

Другие вопросы по тегам