我有一个单线程 C# 工具,其中有一堆 UI 输入控件。基于这些控件,以及一些输入的 Excel 文件,正在进行一些处理。此处理需要 10~15 秒,在此期间程序无响应。工作完成后,输出文本会在文本框中提及。
现在我有一个可以完成所有工作的函数。但是,此功能取决于用户提供的 UI 输入。
我只是尝试使用以下代码应用一些线程:
workerThread = new Thread(this.WorkerFunction);
workerThread.Start();
//workerThread.Join();
output.Text = outputStringBuilder.ToString();
我基本上在这里使用相同的 Form 实例,因为使用另一个 Form 实例将不起作用,因为新的 Form 实例不包含用户指定的输入。
正如上面提到的代码,它不起作用。我没有在文本框中看到输出文本。它仅在我启用该workerThread.Join();
语句时才有效,但随后我看到了 10~15 秒的延迟,这打破了线程的整个要点..
那么如何在此设置中添加线程,而不必向 workerFunction 添加一大堆输入参数(因为我想查看 UI 控件输入的原样)..?