Я унаследовал проект, состоящий из трех уровней кода.Самый нижний уровень - это родной C ++, который взаимодействует с оборудованием.Это зрелый, стабильный и хорошо проверенный.Кодом промежуточного уровня является C ++ / CLI, который взаимодействует с кодом C # верхнего уровня, который содержит элементы пользовательского интерфейса и некоторые дополнительные функции.Этот код C # является неполным и был спешно в разработке: он часто дает сбой и не подходит для цели.Моя задача - отладить и завершить его.
Я использую VS 2008, чтобы пройти по многопоточному коду, чтобы понять, с чего начать этот проект.Простой вопрос: в окне «Потоки» у меня есть два именованных потока: рабочий поток, который обменивается данными с некоторым базовым оборудованием (т. Е. Кодом C ++) и поток пользовательского интерфейса.
Однако, шагая по коду, существует довольно много рабочих потоков, у которых нет имени и стека вызовов, связанных с ними, которые кажутся случайными.У них нет записи на панели инструментов «Отладочная локация», и они не отображаются в коде, если выбрано «Показывать потоки в исходном коде».
Что это такое, и я должен быть обеспокоено них?Они, кажется, не из нативного кода (так как он использует Boost для многопоточности, и это ясно из стека вызовов).Замораживание их или изменение их приоритета, кажется, не имеет никакого эффекта.
Я не отлаживал многопоточный код этой сложности прежде, поэтому любой совет очень ценится!