我有一个带有两种方法的类(一个实例):
public class Example
{
public void Connect()
{
// do stuff
}
public void DoSomething()
{
if (someCondition)
Connect();
// do stuff
}
}
允许DoSomething
被多个线程同时访问。
但是,如果调用Connect
,则不允许线程进入DoSomething
,反之亦然,因此Connect
和DoSomething
是互斥的。
与DoSomething
相比,Connect
的调用频率更高。
我的第一个想法是使用ReaderWriterLockSlim
,但是,当DomeSomething
获取读取器锁并需要调用Connect
本身时,它无法获取Connect
中的写入器锁
哪种同步模式最适合实现此目标?