C# 如何修复richtextbox中的{无法计算表达式,因为本机框架位于调用堆栈顶部。}

C# 如何修复richtextbox中的{无法计算表达式,因为本机框架位于调用堆栈顶部。},c#,C#,我试图在richtextbox中显示一个大文本文件,我在程序中使用backgroundworker来摆脱死锁。 当我运行此行的程序值时 this.txtText.Text+=Text+“\r\n” 是 {Text=无法计算表达式,因为本机框架位于调用堆栈的顶部。} 我想richtextbox无法加载我的文件。 我该怎么办 private void bgworker_DoWork(object sender, DoWorkEventArgs e) { lines = File.ReadAl

我试图在richtextbox中显示一个大文本文件,我在程序中使用backgroundworker来摆脱死锁。
当我运行此行的程序值时
this.txtText.Text+=Text+“\r\n”

{Text=无法计算表达式,因为本机框架位于调用堆栈的顶部。}

我想richtextbox无法加载我的文件。
我该怎么办

private void bgworker_DoWork(object sender, DoWorkEventArgs e)
{
    lines = File.ReadAllLines(txtPath.Text);
    foreach (string line in lines)
    {
        this.SetText(line);
    }
}

private void SetText(string text)
{
    if (this.txtText.InvokeRequired)
    {
        txtText.Invoke((ThreadStart)(() => SetText(text)));
    }
    else
    {
     this.txtText.Text += text + "\r\n";
    }
}

BackgroundWorker
使用单独的线程进行处理;通常,您不会在
DoWork
处理程序中更新ui

您需要在
DoWork
函数中完成所有后台处理,并等待调用
RunWorkerCompleted
。 您需要使用
RunWorkerCompleted
更新ui

    private void bgworker_DoWork(object sender, DoWorkEventArgs e)
    {
        lines = File.ReadAllLines(@"txtPath.Text");

    }

    private void bgworker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
        foreach (string line in lines)
        {
            this.txtText.Text += (line + "\r\n");
        }
    }

我发现我的问题与richtextbox无关。我改变了数据结构,使用列表结构,而不是数组和字符串生成器,所以所有的事情都是固定的

        StringBuilder strb = new StringBuilder();

private void bgworker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
        List<string> list = new List<string>();
        for (int i = 0; i < lines.Length; i++)
        {
            string line=lines[i];
            list.Add(line);
        }

        foreach (string s in list)
        {
            strb.Append(s);
        }
        txtText.Text = strb.ToString();

    }
StringBuilder strb=new StringBuilder();
私有void bgworker\u RunWorkerCompleted(对象发送方,RunWorkerCompletedEventArgs e)
{
列表=新列表();
对于(int i=0;i
您的问题不清楚。你能为你的问题添加更多的信息吗?richtextbox不能加载我的整个文本文件。我的文本文件是25mb。当我调试我的程序时,richtextbox不显示我的文本,我的程序也不完整。我在其中使用“全部中断”,并发现在richtextbox中有一件事是错误的,我按你的方式做,但richtextbox不会再次加载整个文件