Каковы потоки в консольном приложении? [Дубликат]

Это означает, что вы пытаетесь манипулировать тем, что имеет ссылку, но еще не инициализировано. Первое, что нужно сделать, это проверить каждый созданный экземпляр. Используйте контрольные точки, часы, проверяйте свои значения varibale. Следить за трассировкой стека и искать точные строки и столбцы, которые создают проблему

31
задан Matt Jacobsen 13 August 2010 в 14:06
поделиться

4 ответа

Попробуйте запустить его вне отладчика (т. е. нажмите Ctrl + F5 вместо F5). Вы должны видеть только три потока - основной поток, поток GC и amp; финализатор нити IIRC. Другие потоки, которые вы видите, являются потоками, связанными с отладчиком.

35
ответ дан Phil Devaney 27 August 2018 в 01:04
поделиться
  • 1
    Да, основной поток, GC и финализатор - это именно то, что вы увидите. Однако вам нужно A) запустить за пределами отладчика и B) отключить процесс хостинга Visual Studio, который добавляет поток или два. – Tergiver 13 August 2010 в 19:07
  • 2
    у вас есть ссылка на статью msdn? – Matt Jacobsen 13 August 2010 в 19:22
  • 3
    процесс VS-хоста активирован, даже если я в режиме Release без запуска процесса через VS? Я все еще вижу 4 потока ... – Matt Jacobsen 16 August 2010 в 10:46
  • 4
    Thread 4 может быть потоком ThreadPool для любой асинхронной работы, которая должна быть выполнена. Впрочем, догадываться. – Sander 17 August 2010 в 06:40
  • 5
    Нужны доказательства. Это совершенно неправильно, я видел, что процесс перемещается между 4-7 потоками вне отладчика !!! это очень простое консольное приложение с бесконечным циклом! – Sawan 14 November 2012 в 14:13

Попробуйте запустить его без прикрепленного отладчика (Visual Studio) (Ctrl + F5). Вы увидите, что будет меньше (возможно, 3) потоков. Большинство этих потоков связаны с отладчиком.

4
ответ дан BFree 27 August 2018 в 01:04
поделиться

Project + Properties, Debugging, untick «Включить хостинг Visual Studio». Я не могу понять, что он делает. Как только я поставлю галочку в опции «Включенный неуправляемый отладчик кода», чтобы попытаться заглянуть в эти потоки, они больше не запускаются. Нет подсказки. Но я уверен, что это для нас полезно:)

5
ответ дан Hans Passant 27 August 2018 в 01:04
поделиться
  • 1
    Я думаю, что процесс хостинга дает отладчику более быстрые полосы или что-то в этом роде. – Matt Jacobsen 13 August 2010 в 19:26
  • 2
    Я полагаю, что процесс хостинга был разработан, чтобы ускорить время запуска для отладки - при отладке соответствующие сборки загружаются в процесс vshost, а не отладчику, которому приходится продолжать создавать / уничтожать новые процессы. – Alex Humphrey 14 August 2010 в 11:24
  • 3
    Nah, процесс хостинга - это пользовательская версия CLR. В основном для целей безопасности. – Hans Passant 14 August 2010 в 13:01

Если вы запустили его без прикрепленного отладчика, тем меньше потоков. И это, по-видимому, будет нить финализатора и другие материалы CLR для домашнего хозяйства.

5
ответ дан Tim Cooper 27 August 2018 в 01:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: