C#抖动:阅读介绍

时间:2019-02-28 06:53:00

标签: c# .net compiler-optimization jitter

如果您有这样的构造,则根据链接的文章(https://msdn.microsoft.com/en-us/magazine/jj883956.aspx段落,请参阅简介)似乎有可能...

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

...通过阅读介绍,通过抖动优化了temp变量。

问题是:有没有一种方法可以保证我确实使用了引用的副本,而不是引入了对原始引用的阅读。由于在我的程序中,myRef可以通过分配新对象来随时更改,因此我需要确保在需要对对象进行某些操作时,在整个函数中访问同一对象。

那又怎么样:

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

是否还会发生这种情况,即抖动多次调用其中一个读取操作,而不是创建引用的副本?

0 个答案:

没有答案