我正在使用这样的配置:
- .NET 框架 4.5
- 视窗服务器 2008 R2
- HP DL360p Gen8(2 * Xeon E5-2640,x64)
我的程序中某处有这样的字段:
protected int HedgeVolume;
我从几个线程访问这个字段。我假设因为我有多处理器系统,所以这个线程可能在不同的处理器上执行。
我应该怎么做才能保证任何时候我使用这个字段最新的值是“读取”?并确保当我“写入”值时它立即可供所有其他线程使用?
我该怎么办?
- 保持原样。
- 声明它
volatile
- 使用
Interlocked
类访问字段 - 使用 .NET 4.5访问字段的
Volatile.Read
方法Volatile.Write
- 采用
lock
我只需要最简单的方法来使我的程序在此配置上运行我不需要我的程序在另一台计算机或服务器或操作系统上运行。我还想要最小的延迟,所以我正在寻找最快的解决方案,它总是可以在这个标准配置(多处理器 intel x64,.net 4.5)上工作。