我在一个单独的线程上查询数据库,并为用户生成一个MessageBox。我希望用户停止他正在做的事情并回复MessageBox。
使用下面的代码,消息框甚至不会弹出当前窗口。用户需要单击任务栏才能看到它。如何让它中断主线程?
Dim Button = MessageBoxButton.YesNo
Dim icon = MessageBoxImage.Information
Dim result = MessageBox.Show("Hi", "Title", Button, icon)
Select Case result
Case MessageBoxResult.Yes
queryInProgress = 0
cashTransfer.TransactionApproved = 1
Case MessageBoxResult.No
queryInProgress = 0
cashTransfer.TransactionApproved = 0
End Select
答案 0 :(得分:0)
您需要在ui-thread上调用它。如果您使用winforms,则Application类会为您提供一组当前打开的表单。通常第一个应该是使用Application.Run()创建的ui创建的表单。
Application.OpenForms[0].Invoke(new Action(() =>
{
MessageBox.Show("Test");
}));
希望它适合你。