我有一個相當簡單的情況,兩個線程與相同的數據結構進行交互。線程託管在他們自己的責任類中。比方說,這些都是阿爾方階級和階級Belzebub:C#互斥參考
class Alfons {
public Mutex listMutex = new Mutex();
private void ProcessListInfo()
{
listMutex.WaitOne();
//
// ... Process multi-access list stuff ...
//
listMutex.ReleaseMutex();
}
}
class Belzebub {
private Alfons mCachedAlfonsReference;
private void ProcessListInfoDifferently()
{
mCachedAlfonsReference.listMutex.WaitOne();
//
// ... Process multi-access list stuff in a different fashion ...
//
mCachedAlfonsReference.listMutex.ReleaseMutex();
}
}
我的問題是,是否引用一個互斥這樣可以創建一個併發的問題或者是否建議的做法這樣做。有沒有更好的方式來做到這一點,例如,我應該緩存互斥參考,而不是通過參考訪問它。
是的!非常感謝你!事實上,我想把你們都當作答案(dcastro&acarlon)。我結束了對我的數據類型進行一些重組感謝:) – Muhwu
很高興幫助 - dcastro是第一個,這麼公平。 – acarlon