Dispatcher를 사용하여 작업자 스레드에서 WPF 텍스트 블록에 일부 내용을 추가하려고 다른 질문을 시도했습니다. XAML와InvalidOperationException TextBlock 업데이트
private void AppendLineToChatBox(Inline message)
{
chatBox.Dispatcher.BeginInvoke(new Action(() =>
{
chatBox.Inlines.Add(message);
chatBox.Inlines.Add("\n");
scroller.ScrollToBottom();
}));
}
: 나는 다음과 같은 방법을 사용하고
<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
메시지 = 다른 스레드가 소유하고 있기 때문에 호출하는 스레드가이 개체에 액세스 할 수 없습니다. 그것.
정확한 방법을 높이 평가할 수 있습니다.
하는 줄에 현재 예외를받을 수 있나요? 'scroller.ScrollToBottom()'에 관한 것이 아닌가? – maximpa
chatBox.Inlines.Add (메시지) – CanCan
에 의해 예외가 발생했습니다. 이미 디스패처를 사용하고있어 중복 질문이라고 생각하지 않습니다. – CanCan