Следовательно, я не могу использовать поточно-аффинные блокировки с 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(); }
}
}
Если moethod, защищенный Mutex, синхронно, то выше код будет работать, но с async
я получу:
Метод синхронизации объектов вызывается из несинхронизированного блока кода.
Итак, Именованный Mutex бесполезен с асинхронным кодом?