Application.run (Windows) против Application.run ()

1

В чем разница между этими тремя кодами?

1.

Window a = new Window ();
a.Show (); // call show

Application b = new Application ();
b.Run (); // call without a

2.

Window a = new Window ();
            // do not call show

Application b = new Application ();
b.Run (a);   // with a

Зачем работать правильно? И зачем это работает? 3.

Window a = new Window ();
a.Show ();  // call show and also call show bellow

Application b = new Application ();
b.Run (a);  // with a
Теги:
wpf

1 ответ

3
Лучший ответ

оба они в основном предназначены для цикла сообщений, это ядро приложения Windows, которое обрабатывает оконное сообщение, такое как рисование, событие mouse/kbd и т.д.

если вы используете код ниже без Application.Run

Window a = new Window ();
a.Show ();

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

поэтому, вызывая цикл сообщений через Application.Run, окно начинает работать как ожидалось

Application b = new Application ();
b.Run (a);  // with a
  • 1
    +1 хорошо объяснил. Также я хотел бы добавить, что цикл сообщений - это то, что предотвращает выход из точки входа в программу (основная функция) до того, как пользователь дает команду выйти, поэтому необходимо поддерживать ее работу в течение неопределенного времени.
  • 0
    «Вы найдете замороженное окно», я думаю, что приложение без Application.Run закроется немедленно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню