У меня есть приложение, которое использует AutoResetEvent (WaitOne / Set) в очереди для обработки сообщений.Я замечаю, что когда я завершаю сеанс отладки из Visual Studio (Shift + F5), оригинальный процесс для приложения зависает (но не всегда).Я вручную присоединяю отладчик к процессу и вижу, что в WaitHandle.WaitOne застрял один поток.
Итак, мой вопрос: как правильно завершить потоки, которые могут находиться в состоянии WaitOne?
Первый ответ, который всплыл в голову, это прослушать событие выхода приложения и выполнить там набор, но я не был уверен, было ли это событие надежно вызвано после этих сеансов отладки, или есть более стандартныйпрактика, о которой я не знаю.
И, как второй вопрос, не могли бы вы по-другому это обработать для приложения, работающего в «производственном» режиме?