Обычно это невозможно, но есть некоторые вещи, которые могут работать для определенных сценариев.
Базовое решение Как уже упоминалось в другом месте, повторяя последовательность: Заморозить, Возобновить (ждать), Пауза, Оттепель, Шаг должен привести к описанному вами поведению, предоставляя другим потокам возможность работать в фоновом режиме, пока ваш целевой поток остановлен.
У этого подхода есть как минимум две проблемы:
- Это довольно утомительно
- Ваши фоновые потоки будут приостановлены всякий раз, когда отладчик приостановлен.
Улучшения
Первая проблема может быть решена с помощью другой процедуры: введите Thread.Sleep(10000)
в Immediate Window, эффективно удерживая сфокусированный поток занятым, в то время как другие потоки работают нормально.Вы даже можете привязать эту команду к макросу.
Вторая проблема может быть решена только с помощью подхода, который не должен останавливать отладчик.Но как мы будем проверять состояние, когда сессия не приостановлена?Вот где приходит IntelliTrace , но вы можете обнаружить, что вам нужно создать пользовательских событий IntelliTrace .Недостаток этого подхода заключается в том, что вы не можете вручную изменять состояние в полете.