Я попытался выполнить другие вопросы, чтобы добавить некоторый контент в текстовый блок 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
Исключение выбрано chatBox.Inlines.Add (message) – CanCan
Я не думаю, что это дублированный вопрос, поскольку я уже пользуюсь диспетчером. – CanCan