2015-01-14 2 views
2

Мне нужно предупредить пользователя, открыв всплывающее окно, когда идет дождь, и попросите его ответить, нажав кнопку, чтобы убедиться, что он знает статус погоды. Но я хочу, чтобы другие строки моего кода работали в фоновом режиме. Другими словами, я ищу решение, которое не вызывает остановки программы, пока пользователи не нажмут кнопку. Я использую Visual Studio 2013 WinForms. Всем спасибо.Как открыть всплывающее окно, чтобы сигнализировать пользователю и работать в фоновом режиме?

+2

WinForms? WPF? ASP.NET? – dymanoid

+0

Уважаемый dymanoid, Visual studio 2013 WinForms – GntS

+1

Вы можете отобразить окно всплывающих окон, вызывая 'YourWindow.Show()' скорее, чем 'YourWindow.ShowDialog()'. Это отобразит ваше окно как немодальное, и ваш код продолжит выполнение. – dymanoid

ответ

1

Я не уверен, что ваши точные требования, однако

Messagebox.show показывает messagebkx, который известен как «модальный» означает, что вы не можете взаимодействовать с другими окнами, пока он открыт. Чтобы иметь немодульное окно сообщения, попробуйте создать новую форму и с помощью messagebox.show, чтобы отобразить его. Вам нужно будет создать форму и использовать для отображения Show().

Обратите внимание, что с messagebox.show вы получаете результат, как только закрывается messagebox, немодуальное окно сообщения не делает этого, и вам нужно будет закодировать что-то, чтобы обработать такие события, как событие.

Если нет события, то, что вы ищете, это asyncawait.

Async и await два C# ключевых слов, больше информации можно найти в Microsoft документации здесь: http://msdn.microsoft.com/en-us/library/hh191443.aspx

Если вы делаете async метод, называемый showDialogAsync(), что ждет пользователей результат, а затем ждать его в новом потоке Вас получите следующий результат:

Ваша программа работает в обычном режиме условия будут выполнены и диалог должен быть показан showDialogAsync называется и ждали. Showdialogasync ожидает ввода пользователей. Элемент управления возвращается методу, который называется showDialogAsync Когда пользователь нажимает кнопку, будет запущен код после ожидания вызова метода.

Эта диаграмма показывает поток управления в некоторых async кода и может быть полезным: http://i.msdn.microsoft.com/dynimg/IC612215.png

+0

Вопрос в том, насколько я понимаю, как показать немодальное всплывающее окно. Это не имеет никакого отношения к async/await или многопоточности. – dymanoid

Смежные вопросы