Как показать и скрыть сообщение «Пожалуйста, подождите» для пользователя - PullRequest
1 голос
/ 18 ноября 2010

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

Когда метод запускается, я хотел бы показать сообщение «Пожалуйста, подождите» и продолжить работу. Когда работа будет завершена, я скрою сообщение и продолжу.

Я знаю, что могу сделать это с BackgroundWorker (или любым другим потоком, связанным), но я надеялся, что что-то уже закончено, как:

MBox.Show("Please wait...");
//do my work...
MBox.Hide();

Ответы [ 3 ]

3 голосов
/ 18 ноября 2010

Если у вас есть какой-то длительный процесс, вы не должны делать это в потоке пользовательского интерфейса.Что не так с BackgoundWorker?Этот класс великолепен!Я бы порекомендовал вам использовать это, если это приложение WinForms.

1 голос
/ 18 ноября 2010

Если вы используете .Net 4, вы можете запустить Task для работы с фоновым рабочим, иначе вы можете выполнять многопоточность, но они не должны быть в одном потоке.

0 голосов
/ 18 ноября 2010

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

...