У меня есть следующие строки кода:
// index is an integer
Mutex mutex = new Mutex(false, "MUTEX_PREFIX" + index.ToString());
mutex.WaitOne();
// Access to the shared object which should not be accessed by multiple threads.
mutex.ReleaseMutex();
Та же самая логика (названная mutex) используется другими потоками, поэтому я удостоверяюсь, что для правильного ресурса используется правильная блокировка.
Проблема в том, что если именованный mutex
получен другим потоком (или процессом), текущий поток получает исключение вместо блокировки во второй строке.
Что мне нужно - это ожидание именованного mutex
, а затем продолжить с моим кодом.
Где я ошибаюсь?