Поток завершился с кодом 0 (0x0) без необработанного исключения.

Во время отладки моего приложения на C# я заметил большое количество появлений следующего предложения:

Нить - вышла с кодом 0 (0x0).

Приложение продолжает работать, и ни одно исключение не перехватывается / не обрабатывается.

Приложение работает на 64-битной Windows 7 и отлажено на платформе x86.

5 ответов

Решение

Это просто отладочное сообщение. Вы можете отключить это, щелкнув правой кнопкой мыши в окне вывода и убрав галочку с сообщения о завершении потока.

http://msdn.microsoft.com/en-us/library/bs4c1wda.aspx

В дополнение к программированию из вашего приложения, окно " Вывод" может отображать информацию о:

  • Модули, загруженные или выгруженные отладчиком.

  • Исключения, которые выбрасываются.

  • Процессы, которые выходят.

  • Темы, которые выходят.

Ну, у приложения может быть много потоков, работающих параллельно. Некоторые из них управляются вами, программистом, другие - классами фреймворка (особенно если вы находитесь в среде с графическим интерфейсом).

Когда поток завершил свою задачу, он выходит и перестает существовать. Там то есть ничего тревожного в этом нет и вам наплевать.

Чтобы завершить принятый ответ BlueM, вы можете деактивировать его здесь:

Сервис> Параметры> Отладка> Общие параметры вывода> Сообщения о выходе из потока: Выкл.

Если ваше приложение использует потоки прямо или косвенно (т. е. за кулисами, как в сторонней библиотеке), совершенно нормально, чтобы потоки прекращали работу после того, как они завершены... что, в сущности, вы и описываете... отладчик показывает это сообщение... вы можете настроить отладчик так, чтобы он не отображал это сообщение, если оно вам не нужно...

Если вышеперечисленное не помогает, пожалуйста, предоставьте более подробную информацию, так как я не уверен, с какой именно проблемой вы столкнулись...

Выполнение запросов Linq может генерировать дополнительные потоки. Когда я пытаюсь выполнить код, использующий коллекцию запросов Linq, в непосредственном окне, он часто отказывается запускаться, потому что отладчику недостаточно потоков.

Как уже говорили другие, для потоков, чтобы выйти, когда они закончены, это совершенно нормально.

Каркас создает потоки для поддержки каждого окна, которое вы создаете, например, когда вы создаете Form и.Show() ее. Когда окна закрываются, потоки завершаются (т.е. они выходят).

Это нормальное поведение. Однако, если приложение создает потоки, и существует много сообщений о выходе потоков, соответствующих этим потокам (возможно, это можно определить по именам потоков, указав им разные имена в приложении), то, возможно, это свидетельствует о проблеме. с приложением, создающим потоки, когда это не должно, из-за ошибки логики программы.

Было бы интересно, чтобы оригинальный постер дал нам знать, что он / она обнаружил в связи с проблемами при сбое сервера. У меня такое ощущение, что это не имеет никакого отношения к этому... но по информации, размещенной здесь, это трудно понять.

Остановите эту ошибку, вы должны выполнить следующие простые шаги

  1. Откройте Visual Studio
  2. Выберите вариант отладки сверху
  3. Выберите параметры
  4. В Option Select debugging при отладке выберите General
  5. В разделе "Общие" установите флажок "Автоматически закрывать консоль при остановке отладки".
  6. Сохрани это

Затем запустите код с помощью сочетания клавиш Ctrl+f5.

** В противном случае он все еще показывает ошибку, когда вы запускаете его напрямую

Я тоже столкнулся с этой проблемой, и решение:

  1. открыть решение изучить
  2. дважды щелкните файл Program.cs

Я снова добавил этот код, и моя программа работала точно:

Application.Run(new PayrollSystem()); 
//File name this code removed by me accidentally.
Другие вопросы по тегам