Исключение при выпуске Mutex.Что может вызвать это? - PullRequest
5 голосов
/ 06 октября 2011

При получении мьютекса в приведенном ниже коде я получаю следующее исключение «Метод синхронизации объектов был вызван из несинхронизированного блока кода»:чтение / запись) другими потоками, но я понятия не имею, почему этот код вызывает исключение.У кого-нибудь есть идеи?

Ответы [ 2 ]

8 голосов
/ 07 октября 2011

Переместите вызов WaitOne () над блоком try.Вы можете освободить мьютекс только тогда, когда узнаете, что приобрели его.

Теперь у вас также будет шанс получить лучшую диагностику.

3 голосов
/ 07 октября 2011

Чтение MSDN :

ApplicationException    
The calling thread does not own the mutex.

Метод WaitOne () может вызвать исключение, не получая мьютекс. Поэтому, когда вы пытаетесь выпустить его, вы получаете другое исключение

...