通过我的长代码调度处理的每一步,我将结果写入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";
}
答案 0 :(得分:1)
我建议你将长时间运行的任务移到一个单独的线程中。从长远来看,任何其他方法都会给你带来痛苦。尝试保持GUI正确更新并在GUI线程本身中运行长任务时响应事件是非常容易出错的,以至于你最好不要去那里。
在这里阅读这篇文章,作为WinForms GUI中多线程的起点非常清楚:http://msdn.microsoft.com/en-us/library/vstudio/ms171728(v=vs.100).aspx