【发布时间】:2015-12-27 20:36:54
【问题描述】:
这通常使用volatile 来完成。但对于long 或double,这是不可能的。
也许只是将其设为public 就足够了,然后编译器就知道它可以被另一个程序集使用并且不会“优化它”?这可以依靠吗?其他方式?
需要明确的是,我并不担心变量的并发读/写。只有一件事 - 它没有得到优化。 (就像在https://stackoverflow.com/a/1284007/939213 中一样。)
【问题讨论】:
-
使用 Random 类,它会有更多可预测的行为。或者 System.Threading.Volatile
-
你能展示一些你认为可以优化掉的代码吗?
-
你打算如何“从另一个线程”更新这个变量?这并不是托管代码的真正工作方式。
-
@HansPassant 你能举例说明你的意思吗?我不明白。
-
@Batavia 它与问题相关联。你点击链接了吗?