C#从Backgroundworker写入文本框(这是控制台输出)

时间:2017-04-12 09:47:27

标签: c# multithreading backgroundworker console-output

我正在为更大的程序制作GUI。 为了包含Abort按钮,我不得不使用Backgroundworker。

void _oWorker_DoWork(object sender, DoWorkEventArgs e)
        {           
            try
            {
                Starter.Handling(cBLog, cBSelC, cBSelT);
                if (_oWorker.CancellationPending)
                {
                    e.Cancel = true;
                    return;
                }
            }
            catch (Exception exp)
            {
                MessageBox.Show(exp.Message,"Exception Caught:");
            }
        }

然而,现在我偶然发现了一个更大的问题,无法访问按如下方式加载的文本框:

private void Form1_Load(object sender, EventArgs e)
    {
        // Instantiate the writer
        _writer = new TextBoxStreamWriter(txtConsole);
        // Redirect the out Console stream
        Console.SetOut(_writer);
    }

问题是,TextBox必须保持控制台输出,因为我不想更改子程序(也包含while循环)。 有什么建议吗?

0 个答案:

没有答案