В моем приложении есть несколько входящих запросов. Каждый запрос имеет ключ (строку). Я хочу заблокировать ключ, поэтому два запроса с одним и тем же ключом обрабатываются синхронно. Я прочитал все различные механизмы блокировки, но ни один из них, кажется, не обеспечивает то, что мне нужно.
lock
Не удается обработать тайм-ауты.
SemaphoreSlim
Невозможно назвать. Я мог заблокировать только все запросы.
Semaphore
Может существовать и после выхода из приложения, если приложение принудительно закрыто.
Mutex
Должен быть освобожден в том же потоке, поэтому я не могу ждать, пока держусь за него.
Было бы идеально что-то вроде именованного SemaphoreSlim
(мне не нужна межпроцессная блокировка ). Есть ли что-то в фреймворке, или пакет Nuget, или репозиторий Github, который предоставляет то, что мне нужно?