我有这样的代码:
.....
private volatile bool _connSharedDisposed;
......
// Thread 1
while (!_connSharedDisposed)
{
Thread.Sleep(1);
}
CGate.Close();
......
// Thread 2
_connShared.Close();
_listenerFutInfo.Close();
_listenerFutInfo.Dispose();
_listenerFutCommon.Close();
_listenerFutCommon.Dispose();
_connShared.Dispose();
// insert Thread.MemoryBarrier here?
_connSharedDisposed = true;
恐怕在打电话之前_connSharedDisposed = true
可能会重新安排和接收。可能吗?如果我的代码不起作用如何修复它?我想我可能应该插入 MemoryBarrier 来阻止“重新排列”true
_connShared.Dispose()
也可能我应该使用AutoResetEvent
而不是bool volatile
变量...