другой асинхронный метод, который ждет то, что не зависит от процессора.
И участок кода в этом методе не должен выполняться в многопотоке.
Mutex mutex=new();
async Task Met()
{
if(!mutex.WaitOne(0))
return;
await Something();
mutex.ReleaseMutex();
}
но ReleaseMutex() вызывает ошибку в async методе.
как лучше поступить в такой ситуации? чтоб идеально прям было как у супермегакодеров со стажем 60 лет
Вроде семафор какой-то можно было использовать в асинке?
Отпускать мютекст можно только в том потоке, который заблокировал его
есть нугеты с AsyncLock А если хочешь сам: Нет такой проблемы, которую не могли бы решить ченелы. Делаешь ченел с 1 мессаджем унутри (и капасити 1, что важно) Взять лок = успешно считать меседж из ченела Вернуть лок = закинуть меседж обратно в ченел Всё
Вы хотя-бы понимаете степень упоротости такого решения?
Обсуждают сегодня