我们遇到了多个与此异常相关的问题,但我找不到有关该问题真正原因的技术文档,也没有找到所有可能导致此错误的信息来源以及我们应该避免什么才能避免出现这个异常。
我已经阅读了以下内容:
“调度处理被暂停以避免在更新可视树时产生重入问题。”
但我不确定“更新可视树”的含义,以及是什么导致消息发送到分派程序并导致该问题再次发生。
以下示例代码会重现此问题:
XAML
我已经阅读了以下内容:
“调度处理被暂停以避免在更新可视树时产生重入问题。”
但我不确定“更新可视树”的含义,以及是什么导致消息发送到分派程序并导致该问题再次发生。
以下示例代码会重现此问题:
XAML
<Window x:Class="SuspendedPOF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Height="350"
Width="525">
<StackPanel>
<Button Content="1" x:Name="Button1" IsVisibleChanged="Button1_OnIsVisibleChanged" />
</StackPanel>
</Window>
C# 代码
using System.Windows;
namespace SuspendedPOF
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button1_OnIsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
MessageBox.Show("Hello");
}
}
}
MessageBox调用不是唯一可能触发这个异常的方法,类似于Focus等其他操作也有可能出现问题。
任何帮助将不胜感激。