2014-02-28 4 views
0
public class ThreadExample 
    { 
     FlowDocument mcFlowDoc = new FlowDocument(); 
     Paragraph para = new Paragraph(); 
     public static void ThreadJob(MainWindow mainWindow) 
     { 
      mainWindow.richtextbox2.Document.Blocks.Add(new Paragraph(new Run(Text))); 
     } 

    } 

안녕하세요. 나는이 코드 조각을 가지고있다. 그것은 내 메인 윈도우 코드 밖에 위치합니다. 내가 원하는 것은 필자의 요구에 따라 리치 텍스트 상자를 표시하도록 요구할 것입니다.MainWindow 외부에서 richtextbox를 호출하는 중

왜 내가 그것을 실행할 때 예외가 나타납니다. 호출 스레드가 다른 스레드가이 개체를 소유하고 있기 때문에이 개체에 액세스 할 수 없습니다. 이 문제를 어떻게 해결할 수 있습니까?

답변

0

정적 메서드에 MainWindow의 인스턴스를 전달 중입니다. RichTextBoxMainWindow에있는이 단지 참조를 사용 가정 : 나는 그것을 시도

public static void ThreadJob(MainWindow mainWindow) 
{ 
    mainWindow.Dispatcher.Invoke(DispatcherPriority.Normal, 
     new Action(() => mainWindow.richtextbox2.Document.Blocks.Add(new Paragraph(new Run(Text))))); 
} 
+0

하지만 여전히 정말 같은 오류 – iaskyou

+0

를 표시? 동일한 _exact_ 오류가 있습니까? 오류가 코드에서 다른 실수를 범할 수있는 다른 행을 나타내는 것입니까? –

+0

오. 그것은 효과가있다. 미안하다. : D 디버깅을 시작하려고 시도했지만 오류가 전혀 표시되지 않습니다. 고마워요 – iaskyou

관련 문제