В моем приложении Vform.NET Winform я проверяю некоторые поля. В случае, если одно конкретное поле равно true
Мне нужно показать сообщение. Обычно это будет так:Показать MessageBox modaly из фоновой темы
If (myField) Then
MessageBox.Show("Something is wrong", "Warning", MessageBoxButtons.OK)
// continuing...
End If
Это сообщение должно быть показано modaly (пользователь может вернуться к главной форме только после нажатия кнопки OK). Проблема в том, что я не хочу, чтобы поток дождался щелчка (просто покажите сообщение и продолжайте - не ждите кнопки OK).
Моя единственная идея состоит в том, чтобы показать сообщение в фоновом потоке:
If (myField) Then
Dim t As Thread = New Thread(AddressOf ShowMyMessage)
t.Start()
// continuing...
End If
Private Sub ShowMyMessage()
MessageBox.Show("Something is wrong", "Warning", MessageBoxButtons.OK)
End Sub
Но в этом случае сообщение не показан modaly (пользователь может вернуться к основной форме и взаимодействовать с ней без нажатия кнопки ОК).
Любые идеи?
показать окно сообщения в потоке пользовательского интерфейса. Зачем здесь нужен рабочий поток? –
Потому что поток пользовательского интерфейса останавливается на сообщении. После этого у меня есть код, и он выполняется только после закрытия сообщения – DanielH
Вот в чем смысл диалога Modal. У вас есть проблема [XY Problem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) вместо этого задайте исходный вопрос. –