Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> аналог exit() из С++, C# 
:(
    Опции темы
Artiom
Дата 7.9.2005, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: нет
Всего: 17



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


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
mr.DUDA
Дата 7.9.2005, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Application.Exit( );


--------------------
user posted image
PM MAIL WWW   Вверх
arilou
Дата 7.9.2005, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Application.Exit подойдет?


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Artiom
Дата 7.9.2005, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: нет
Всего: 17



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


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
arilou
Дата 7.9.2005, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



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


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Artiom
Дата 7.9.2005, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: нет
Всего: 17



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


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
mr.DUDA
Дата 7.9.2005, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Тогда можешь такое использовать: System.Diagnostics.Process.GetCurrentProcess().Kill();


--------------------
user posted image
PM MAIL WWW   Вверх
Artiom
Дата 7.9.2005, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: нет
Всего: 17



Спасибо. Это работает. Хотя кажется немного странным убивать процесс здесь.


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
mr.DUDA
Дата 7.9.2005, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



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

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

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

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


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.