gpt4 book ai didi

c# - WPF跨线程消息框不阻塞主线程输入

转载 作者:太空狗 更新时间:2023-10-29 21:21:45 25 4
gpt4 key购买 nike

我正在尝试使用 Dispatcher.Invoke 显示来自另一个 ThreadMessageBox .

MessageBox 确实出现了。但是,即使不单击 MessageBox 上的 OK 按钮,我仍然可以控制主窗口。

我在想是否有办法在单击 OK 按钮之前阻止主窗口输入?

感谢任何帮助。

我目前的代码:

void ShowError(String message)  //I call this function in another thread
{
if (this.Dispatcher.CheckAccess())
MessageBox.Show(message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
else
{
this.Dispatcher.Invoke(
new Action(() =>
{
MessageBox.Show(message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
}));
}
}

最佳答案

确保消息框阻塞窗口的唯一方法是将窗口传递给消息框。

void ShowError(String message, Window windowToBlock)  //I call this function in another thread
{
if (this.Dispatcher.CheckAccess())
MessageBox.Show(windowToBlock, message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
else
{
this.Dispatcher.Invoke(
new Action(() =>
{
MessageBox.Show(windowToBlock, message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
}));
}
}

关于c# - WPF跨线程消息框不阻塞主线程输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34950139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com