我有一个用C#编写的程序,它从磁盘中的文件中读取了大量内容,然后输出几行文本,而不是很多文本文件中的100个文本。
该程序冻结了大约一半,我是c#的新手并且通常从研究编程,似乎我需要使用控制表单的单独线程。两个问题,
我应该使用新线程进行读取,还是使用新线程进行写入,还是仅使用一个读取函数?
这样做的最佳方式是什么?
我希望这是有道理的,我非常感谢你的帮助!
答案 0 :(得分:2)
BackgroundWorker是最好用的。这是一个很好的tutorial,描述了它的所有事件和属性。
简而言之,这就是你应该做的。
要记住的最重要的事情是ProgressChanged和RunWorkerCompleted事件正在主线程中执行,您可以使用后台工作程序结果更新UI。只有后台线程中执行的DoWork事件。
答案 1 :(得分:0)
如果必须在写入之前进行完整读取,则只需要一个线程 - 否则,您可以使用两个。
检查一下线程示例: http://msdn.microsoft.com/en-us/library/aa645740(v=vs.71).aspx