阻止IDisposable.Dispose从线程安全的方法

时间:2013-11-30 18:35:00

标签: c# dispose finalizer

我正在使用一个管理游戏内容的类,我想知道如何在不锁定共享dispose-lock的情况下阻止对dispose方法的调用? worker方法本身是线程安全的,并且可以并行执行,这就是为什么我不想使用dispose-method在触发时尝试获取的共享锁来锁定这些方法。

public void DoSomething()
{
    lock (method1Lock) { /* ... */ }
}

public void Dispose()
{
    lock (method1Lock)
    lock (method2Lock)
    lock (methodXLock)
    {

    }
}

在这种情况下是不合适的,正如我之前提到的那样,方法(在这种情况下为DoSomething)可以并行运行。

1 个答案:

答案 0 :(得分:0)

使用ReaderWriterLock。让Method...代码采用读取端和Dispose写入端(不包括)。