C# 在主窗口外调用richtextbox

C# 在主窗口外调用richtextbox,c#,wpf,richtextbox,C#,Wpf,Richtextbox,嗨。我有这段代码。它位于我的主窗口代码之外。我想让我的richtextbox根据我的需要显示一些东西 为什么当我运行它时,会出现一个异常,即调用线程无法访问该对象,因为另一个线程拥有它。我怎样才能解决这个问题 您正在将MainWindow的实例传递到静态方法中。假设RichTextBox位于main窗口中,只需使用该引用即可: public class ThreadExample { FlowDocument mcFlowDoc = new FlowDocument();

嗨。我有这段代码。它位于我的主窗口代码之外。我想让我的richtextbox根据我的需要显示一些东西


为什么当我运行它时,会出现一个异常,即调用线程无法访问该对象,因为另一个线程拥有它。我怎样才能解决这个问题

您正在将
MainWindow
的实例传递到静态方法中。假设
RichTextBox
位于
main窗口中,只需使用该引用即可:

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.Dispatcher.Invoke(()=>mainWindow.richtextbox2.Document.Blocks.Add(新段落(新运行(文本)));错误1无法将lambda表达式转换为类型“System.Delegate”,因为它不是委托类型Yes。它确实在起作用。你能把这篇文章也发到我的其他帖子上吗?这样每个看到我的问题的人都会得到通知?非常感谢
public static void ThreadJob(MainWindow mainWindow)
{
    mainWindow.Dispatcher.Invoke(DispatcherPriority.Normal,
        new Action(() => mainWindow.richtextbox2.Document.Blocks.Add(new Paragraph(new Run(Text)))));
}