Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > аналог exit() из С++


Автор: Artiom 7.9.2005, 12:27
собственно сабж. Как по условию завершить выполнение программы? Конечно, можно поставить условие типа if(pr){...}, но мне это очень неудобно.

Автор: mr.DUDA 7.9.2005, 12:36
Application.Exit( );

Автор: arilou 7.9.2005, 12:36
Application.Exit подойдет?

Автор: Artiom 7.9.2005, 13:24
это я видел. у меня консольное приложение, но никакого влияния Application.Exit() не оказывает. Все выполняется как и раньше

Автор: arilou 7.9.2005, 13:42
А ты попробуй Application.Run использовать до того, как вызываешь Application.Exit

Автор: Artiom 7.9.2005, 14:09
поставил Application.Run() в начале Main() - програма выполняется только до Application.Run() а затем запускается консольное окно и виснет.

Автор: mr.DUDA 7.9.2005, 16:06
Тогда можешь такое использовать: System.Diagnostics.Process.GetCurrentProcess().Kill();

Автор: Artiom 7.9.2005, 16:30
Спасибо. Это работает. Хотя кажется немного странным убивать процесс здесь.

Автор: mr.DUDA 7.9.2005, 16:45
Цитата(Artiom @ 7.9.2005, 16:30)
Хотя кажется немного странным убивать процесс здесь.

Нисколько. Если программа содержит процедуру, решающую "завершать программу или нет?", то существует два пути. Либо эта процедура приведёт к нормальному выходу из ф-ции Main(), либо нужно убивать текущий процесс (или текущий поток, если в программе исполняется только 1 поток).

Первый вариант вы можете продумать сами, это зависит целиком от вашей фантазии как разработчика. Второй вариант - один, но есть много способов его реализовать:

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)