0
일부 장기 실행 프로세스를 수행하고 RichTextBox
에 표시 할 단락을 작성하려면 Thread
을 만듭니다.메인 스레드의 하위 스레드에서 FlowDocument에 단락 만들기
일반적으로이 간단하여 수행됩니다 :
Paragraph paragraph = new Paragraph();
paragraph.Inlines.Add(new TextBlock()
{
Text = "Hello i´m som text",
TextWrapping = TextWrapping.NoWrap
});
richtextbox.Document = new FlowDocument(paragraph);
(작품 파인)하지만 단락 스레드에서 만든 다음에 추가 할 RichTextBox
같은 :
Thread t = new Thread(new ThreadStart(CreateText));
t.Start();
private void CreateText()
{
Paragraph paragraph = new Paragraph();
paragraph.Inlines.Add(new TextBlock()
{
Text = "Hello i´m som text",
TextWrapping = TextWrapping.NoWrap
});
Main.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new Action(() =>
{
richtextbox.Document = new FlowDocument(paragraph);
}
}
내 문제는 이것이 오류를 반환한다는 것입니다. 오류 :
The calling thread cannot access this object because a different thread owns it. on richtextbox.Document = new FlowDocument(paragraph);
http://stackoverflow.com/questions/2728896/the-calling-thread-cannot-access-this-object-because-a-different-thread-owns-it/2729040#2729040 – Terry
죄송 합니다만 볼 수는 없습니다. 연결 .... – Lynspitti
오류 선은 매우 분명합니다. 현재 UI 스레드가 아닌 스레드를 통해 UI 요소의 내용을 변경하려고합니다. 따라서 액세스 권한이있는 스레드를 가져와야 컨트롤을 업데이트 할 수 있습니다. – Terry