私はそのようなコードを持っています:
.....
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
ます...