我尝试按照其他问题通过使用 Dispatcher 将一些内容从工作线程添加到 WPF 文本块。我正在使用以下方法:
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() 时,我仍然收到以下异常:
System.InvalidOperationException 未处理 HResult=-2146233079
Message=调用线程无法访问此对象,因为不同的线程拥有它。
正确的方法将不胜感激。