При получении мьютекса в приведенном ниже коде я получаю следующее исключение «Метод синхронизации объектов был вызван из несинхронизированного блока кода»:чтение / запись) другими потоками, но я понятия не имею, почему этот код вызывает исключение.У кого-нибудь есть идеи?
Переместите вызов WaitOne () над блоком try.Вы можете освободить мьютекс только тогда, когда узнаете, что приобрели его.
Теперь у вас также будет шанс получить лучшую диагностику.
Чтение MSDN :
ApplicationException The calling thread does not own the mutex.
Метод WaitOne () может вызвать исключение, не получая мьютекс. Поэтому, когда вы пытаетесь выпустить его, вы получаете другое исключение