在互锁操作之后和调用内存屏障之后,内存高速缓存一致性(或“刷新”)的时间是否存在差异?让我们在C#中考虑 - 使用任何Interlocked操作与Thread.MemoryBarrier() - 生成的内存缓存刷新行为是否相同?
我相信存在差异。我正在解决一个似乎是由内存屏障后延迟刷新引起的业务案例(我们用Interlocked操作取代)。还有相当多的信息来源(包括wikipedia)表明内存障碍并不能保证操作的时间安排。
如果感兴趣的话,我可以链接更多参考或添加示例代码段,但最初我想保持简短的问题(因为我在我的original question to this topic中投了太多信息)