因此,我无法在使用
例如,我有两个使用下面任务的进程:
async
时使用线程亲和锁 - 当运行多个进程时,如何保护我的资源?例如,我有两个使用下面任务的进程:
public async Task<bool> MutexWithAsync()
{
using (Mutex myMutex = new Mutex(false, "My mutex Name"))
{
try
{
myMutex.WaitOne();
await DoSomething();
return true;
}
catch { return false; }
finally { myMutex.ReleaseMutex(); }
}
}
如果由 Mutex 保护的方法是同步的,那么上面的代码将会起作用,但是使用 async
后我会得到以下错误信息:
从未同步的代码块中调用了对象同步方法。
因此,在异步代码中使用命名 Mutex 是否无用?