使用处理步骤更新富文本框时挂起 C# WinForm 应用程序
本文关键字:挂起 应用程序 WinForm 文本 处理 更新 | 更新日期: 2023-09-27 18:35:48
通过我非常长的代码调度处理的每一步,我把结果写到一个richTextBox,行数可能超过数千行,应用程序处于"无响应状态",当我禁用此步骤时,我偶然发现了这个问题。但是,我仍然需要一种方法来获取我的应用程序处理历史记录的完整描述,您还有其他建议吗
我的代码似乎是这样的:
public void mycode()
{
//code part one
richTextBox1.text += "result is: abc";
//code part two
richTextBox1.text += "result is: efg";
//code part three
richTextBox1.text += "result is: hij";
}
我建议您将长时间运行的任务移动到单独的线程中。从长远来看,任何其他方法都会给您带来痛苦。尝试保持 GUI 正确更新并在 GUI 线程本身中运行长任务时响应事件非常容易出错,因此您最好不要去那里。
在这里阅读这篇文章,它很清楚地作为WinForms GUI中多线程的起点:http://msdn.microsoft.com/en-us/library/vstudio/ms171728(v=vs.100).aspx