【发布时间】:2015-04-16 07:41:27
【问题描述】:
在我的 Winform VB.NET 应用程序中,我正在检查一些字段。如果一个特定字段等于true,我需要显示消息。通常是这样的:
If (myField) Then
MessageBox.Show("Something is wrong", "Warning", MessageBoxButtons.OK)
// continuing...
End If
此消息必须以模态方式显示(用户只有在单击确定按钮后才能返回主窗体)。问题是我不希望线程等待点击(只显示消息并继续 - 不要等待确定按钮)。
我唯一的想法是在后台线程中显示消息:
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
但在这种情况下,消息不会以模式显示(用户可以返回主窗体并与其交互,而无需单击“确定”按钮)。
有什么想法吗?
【问题讨论】:
-
在 UI 线程中显示消息框。为什么这里需要一个工作线程?
-
因为 UI 线程在消息上停止。我后面有一些代码,只有在关闭消息后才会执行
-
这就是模态对话框的意思。你有 XY Problem 代替原来的问题。
标签: vb.net winforms messagebox ui-thread background-thread