При отладке создаются 8 потоков, каждый из которых выполняет одну и ту же функцию параллельно. Как можно проследить путь через F11
от начала и до конца конкретного потока? Чтобы не шли, при нажатии F11
, все потоки параллельно в отладке, так мало что можно понять.
Например, в Visual Studio вы можете заморозить остальные потоки на время:
Не забудьте разморозить их потом! А то один поток будет ожидать окончания другого вечно.
Если другие потоки должны тем временем работать, вы можете поставить условную точку останова, в которой будете проверять ID потока (правая кнопка мыши по точке останова → Conditions...):
При следующем пробеге, однако, точку останова придётся отредактировать или убрать, так как ID потока может поменяться.
Не забывайте, однако, что многопоточная отладка не так проста! Если у вас в коде race condition, то наличие отладчика и точки останова может повлиять на порядок исполнения кода в различных потоках, так что с хорошими шансами ошибка может и не проявиться с пошаговым выполнением и точками останова отладкой. Для того, чтобы бороться с этим, вам придётся добавить логирование (которое влияет на порядок выполнения намного меньше, чем остановка в отладчике). Если и логирование не позволяет локализовать проблему, то приходится использовать метод пристального взгляда, просто анализируя код в уме.
Отладка многопоточного пода — одна из самых сложных вещей в программировании.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня две кнопки CustomButtonЕсть только одно событие у клиента ClientSideEvent -> CustomButtonClick
У меня возник вопрос по части кодаНа 54 строке у private void shift_racket объявляется аргумент sx
Наткнулся на код рабочего светофора, но не могу понять как он работает
Не знаю как сформулировать корректный заголовок и вследствие этого как загуглить