【发布时间】:2010-08-23 05:56:22
【问题描述】:
随着我越来越深入地了解volatile 关键字的含义,我不断对自己说“这是进入实现的方式,这不应该是高级编程语言的一部分"。
我的意思是,CPU 缓存数据这一事实应该对 JIT 编译器感兴趣,而不是 C# 程序员。
一个相当大的替代方案可能是一个属性(例如,VolatileAttribute)。
你怎么看?
【问题讨论】:
-
+1 我认为 VolatileAttribute 在这种情况下是可以的。但我不知道为什么 MS 把它作为关键字。
-
C#应该和C++类似,C++已经有了
volatile。既然他们决定需要这个功能(我同意),并且关键字已经在“相似”集中,为什么不直接使用它呢? -
@Blindy:C++ volatile 有不同的使用模式,所以我会避开它。
-
这并没有什么不同,从语义上讲,它们实际上非常相似,并且已经存在。为什么要把事情复杂化?
-
@Blindy:因为在 C/C++ 中,`volatile 是 explicitly not 用于多线程。但这只是我的看法。
标签: c# .net multithreading jit volatile