【发布时间】:2016-02-17 20:51:57
【问题描述】:
我正在尝试显示一个 msgbox 并让用户选择是或否。我正在传递一个 DataTableMessage,我在其中使用 msgbox 中的 3 行值。我收到错误消息“调用线程必须是 STA,因为许多 UI 组件都需要这个。”
我正在使用 vb.net 和 WFP。我发生此错误的代码如下:
If MsgBox("Message Text Here"
, MsgBoxStyle.YesNo, "Caption Here") = MsgBoxResult.No
Then 'Do something
Else
'Do Something
End If
【问题讨论】:
-
不适用于 VB.NET @StepUp
-
@StepUp 不相关。 OP 正在使用 VB 的 MsgBox 函数,它是 WinForms 消息框的包装器。
-
@ShaunMorehammeredDenovan 您使用了错误的方法。在 WPF 中,使用 WPF MessageBox class。此外,您是从主线程还是其他线程显示消息框,例如在回调中,还是响应 Thread.Timer 事件?
-
MsgBox 工作正常,这就是他可以看到错误消息的原因。不要从工作线程更新 UI。
标签: wpf vb.net multithreading