Иногда я обнаруживаю, что перебираю приложение в режиме отладки, пока не нажму «шаг» в какой-то конкретной строке, и это займет слишком много времени, делая что-то, съедая 100% ЦП. В этот момент я нажимаю кнопку «Перерыв» и пытаюсь найти то, что работает так долго.
Проблема в том, что в этом приложении запущено огромное количество потоков, и когда я нажимаю «Break», точка выполнения переходит к потоку GUI, который, вероятно, просто выполняет «Wait».
Затем мне нужно поискать существующие потоки (я насчитал их - на этот раз их 37!), Пытаясь найти тот, на котором я выполняю. Я должен был бы посмотреть на стопку каждого из них, пока не найду тот, который искал.
Поток, в котором я работаю, является асинхронным вызовом, поэтому он выполняется в потоке пула потоков.
Я хотел бы дать этому потоку описательное имя и сбросить его в конце операции.
Проблема в том, что свойство Thread.Name
можно установить только один раз , после чего оно дает InvalidOperationException
.
Есть предложения?
О да, я использую VS2005 / .NET 2.0, но мне также любопытно, есть ли у более новых версий лучшие способы справиться с этим.