У меня есть приложение Windows Forms, использующее .NET 4.5.2, и я создаю PopupNotifier
, который я создаю в коде:
PopupNotifier popup = new PopupNotifier();
popup.TitleText = "Title here";
popup.ContentText = "Content here";
popup.Popup();
Это всплывающее окно предназначено для предупреждения пользователя о «вехах» в ходе выполнения приложения, когда приложение вызывалось как запланированная задача без видимого графического интерфейса пользователя, который я скрываю с помощью следующего кода при загрузке формы:
BeginInvoke(new MethodInvoker(delegate {
Hide();
}));
Проблема в том, что все всплывающие окна попадают в очередь или что-то в этом роде. Похоже, что они не будут всплывать, пока метод, который они вызвали, не завершит выполнение, и поток пользовательского интерфейса снова станет основным объектом обработки, поскольку приложение более или менее бездействует. Но я не совсем уверен, почему.
Я пробовал такие решения, как вызов всплывающего окна из потока пользовательского интерфейса формы, как это было предложено в этом ответе , но безуспешно. Можно ли вызвать строку или блок кода, чтобы всплывающее окно показывалось? Что-то вроде Application.DoEvents()
(за исключением того, что вы знаете, что заставляет всплывающее окно показывать).
Спасибо за помощь!