常用的操作有同步锁和异步锁,RsCode中使用如下:

异步锁
AsyncLock m=new AsyncLock();
using (await m.LockAsync())
{
      //protected code
}
同步锁
using ( new AsyncLock().Lock())
{
      //protected code
}

AsyncLock 第一个参数:初始任务数,第二个参数:最多任务数,默认值都为1

使用第三方库 Nito.AsyncEx进行异步锁

using Nito.AsyncEx;

public async Task test()
{
    AsyncLock _mutex = new AsyncLock();
    using (await _mutex.LockAsync())
    {
        //async ...
    }
}