【发布时间】:2016-05-12 09:18:54
【问题描述】:
我们遇到了多个与此异常有关的问题,但我找不到有关问题真正原因的技术文档、此错误的所有可能来源以及我们应该避免什么以避免出现异常。
我已阅读以下内容:
调度程序处理被暂停以避免重入问题 更新可视化树时。
但我不确定“更新可视化树”是什么意思,以及是什么导致将消息发送到调度程序并重现问题。
以下示例代码重现了该问题:
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 之类的调用有时也会出现问题。
任何帮助都会很棒。
【问题讨论】:
标签: c# .net wpf dispatcher invalidoperationexception