gpt4 book ai didi

WPF : Dispatcher processing has been suspended, 但消息仍在处理中

转载 作者:行者123 更新时间:2023-12-03 12:41:00 26 4
gpt4 key购买 nike

我有一个 WPF 项目,当我尝试在 RowLoad 事件上运行此代码时,出现以下错误:

private void ParentGridView_OnRowLoaded(object sender, EventArgs e)
{
try
{
if(((RadGridView)sender).Columns != null)
{
MessageBox.Show(((RadGridView)sender).Columns.Count.ToString(CultureInfo.InvariantCulture));
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

错误:调度程序处理已暂停,但仍在处理消息。

请注意,GridView 控件是 Telerik RadGridView

最佳答案

This answer描述了和你一样的情况。 (它引用了这个 answer on a different website )。

调度程序处理被暂停以避免更新可视化树时的重入问题。

如果你真的需要显示一个消息框来响应你的“Row Loaded”事件,你需要使用`Dispatcher.BeginInvoke()来推迟调用。

所以,替换:

MessageBox.Show(((RadGridView)sender).Columns.Count.ToString(CultureInfo.InvariantCulture));

和:
var msg = ((RadGridView)sender).Columns.Count.ToString(CultureInfo.InvariantCulture);
Dispatcher.BeginInvoke(new Action(() => MessageBox.Show(msg)));

如果此代码在 WPF 对象中,则 Dispatcher属性(property)可用。否则,您需要从其他地方获取它。

关于WPF : Dispatcher processing has been suspended, 但消息仍在处理中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23452864/

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