我尝试了下面的其他问题,通过使用Dispatcher从工作线程向WPF文本块添加一些内容。我使用下面的方法:InvalidOperationException更新TextBlock
private void AppendLineToChatBox(Inline message)
{
chatBox.Dispatcher.BeginInvoke(new Action(() =>
{
chatBox.Inlines.Add(message);
chatBox.Inlines.Add("\n");
scroller.ScrollToBottom();
}));
}
与XAML:
<Grid Height="200" Width="300" HorizontalAlignment="Left">
<ScrollViewer Name ="scroller">
<TextBlock TextWrapping="Wrap" Background="White" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Name="chatBox" />
</ScrollViewer>
</Grid>
当我打电话AppendLineToChatBox()从后台线程我仍然得到以下异常:
系统。 InvalidOperationException未处理HResult = -2146233079
Message =调用线程无法访问此对象,因为 不同的线程拥有它。
正确的方法将不胜感激。
在哪条线得到的异常呢?你确定它不是关于'scroller.ScrollToBottom()'? – maximpa 2013-03-15 00:06:13
由chatBox.Inlines.Add抛出异常(消息) – CanCan 2013-03-15 00:08:34
我不认为这是一个重复的问题,因为我已经在使用调度程序。 – CanCan 2013-03-15 00:10:17