![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| amarenkov |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 21.2.2008 Где: Воронеж Репутация: нет Всего: нет |
Доброе сутко.
Что именно делает Application.Run()? Почему что так:
что так:
работает вроде бы одинаково. В чем различие? В чем особенность Application.Run()? Заранее спасибо |
||||
|
|||||
| Maka6er |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 27.2.2007 Где: Киев Репутация: нет Всего: 3 |
Application.Run() запускает цикл обработки сообщений для потока - программу. При передачи параметром формы еще и показывает её.
msdn |
|||
|
||||
| amarenkov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 21.2.2008 Где: Воронеж Репутация: нет Всего: нет |
Maka6er, спасибо, конечно. Может я неправильно сформулировал вопрос...
Если следовать логике MSDN, если мы не вызываем эту функцию, то события обрабатываться не должны. Но они обрабатываются. Формой. Так для чего же функция Run()? |
|||
|
||||
| Maka6er |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 27.2.2007 Где: Киев Репутация: нет Всего: 3 |
Значит From.ShowDialog() тоже запускает поток обработки сообщений.
|
|||
|
||||
| amarenkov |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 21.2.2008 Где: Воронеж Репутация: нет Всего: нет |
Похоже на то. Но, изначально там стоит:
а не
Значит, Application.Run() не просто запускает обработку сообщений, а служит для чего-то еще. |
||||
|
|||||
| Maka6er |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 27.2.2007 Где: Киев Репутация: нет Всего: 3 |
Ну да, если передать форму в Application.Run() то она её покажет. В Application.Run(new Forms.MainForm()) так и делается, создается форма и передается в Application.Run(), вызывать .ShowDialog() уже нет необходимости.
|
|||
|
||||
| amarenkov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 21.2.2008 Где: Воронеж Репутация: нет Всего: нет |
Хорошо, спрошу совсем по-другому: почему не используется (new Forms.MainForm()).ShowDialog() вместо Application.Run(new Forms.MainForm()); ?
|
|||
|
||||
| vponomarov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 11.8.2007 Где: Киев Репутация: 5 Всего: 12 |
читайте внимательнее
|
|||
|
||||
| amarenkov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 21.2.2008 Где: Воронеж Репутация: нет Всего: нет |
vponomarov, а когда я не использую метод Run() что-то не очищается разве? Вообще что-то непонятное: ведь после завершения работы главной формы управление передается за метод Run(), на следующий оператор, если он есть. О каком ExitThread может идти речь?
Я к чему тут всех мучаю |
|||
|
||||
| vponomarov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 11.8.2007 Где: Киев Репутация: 5 Всего: 12 |
amarenkov, на самом деле .Net скрывает от программиста много вещей.
например, цикл обработки сообщений. помимо цикла сообщений для форм есть еще сообщения для всей программы в частности, о чем и говорится в МСДНе - сообщение о завершении приложения. если не создать обработчик для этого сообщения думаю ничего хорошего быть не должно сорри, если путанно или ошибаюсь в терминах, но думаю суть понятна |
|||
|
||||
| amarenkov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 21.2.2008 Где: Воронеж Репутация: нет Всего: нет |
vponomarov, будем надеятся, что особенность только в сообщениях для приложения
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |