C#以不同方式处理具有相同锁定的两种方法

问题描述 投票:4回答:1

我有一个有两个方法的类(一个实例):

public class Example
{
    public void Connect()
    {
        // do stuff
    }

    public void DoSomething()
    {
        if (someCondition)
            Connect();

        // do stuff
    }
}

允许多个线程同时访问DoSomething。但是,如果调用Connect,则不允许任何线程进入DoSomething,反之亦然,因此ConnectDoSomething是互斥的。 DoSomething被称为Connect

我的第一个想法是使用qazxsw poi,然而,当qazxsw poi获得读者锁并需要调用ReaderWriterLockSlim本身时,它无法获得DomeSomething中的作者锁。

什么同步模式最适合实现这一目标?

c# locking mutex readerwriterlockslim
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.