Можно ли убить / прекратить определенный поток в отладчике Visual Studio?
В настоящее время, пытаясь отследить потенциальное состояние гонки, я приостановил свое приложение WinForms в отладчике Visual Studio.
Окно Threads показывает много потоков, один из которых, я подозреваю, является основной причиной блокировки.
Я бы хотел сделать следующее:
- Выберите тему
- Щелкните правой кнопкой мыши на ветке
- Выберите "Убить тему" из контекстного меню.
К сожалению, я не нашел варианта, который позволил бы мне сделать что-то подобное.
Мой вопрос:
Можно ли убить / прекратить определенный поток в отладчике Visual Studio 2013?
2 ответа
В Microsoft Technet я нашел Process Explorer, который может решить вашу проблему:
Нелегко просто убить поток, потому что разработчики языка хотят избежать следующей проблемы: ваш поток берет блокировку, а затем вы убиваете ее, прежде чем она сможет снять ее... теперь любой, кому нужна эта блокировка, застрянет.
То, что вам нужно сделать, это использовать некоторую глобальную переменную, чтобы заставить поток остановиться. Вы должны вручную, в своем коде потока, проверить эту глобальную переменную и вернуть, если вы видите, что это означает, что вы должны остановиться.
Пожалуйста, обратите внимание, что то, что вы спрашиваете, невозможно в нынешнем виде.