2010-04-23 56 views
2

我最近开始使用C#在WinForms中编程。我有一个要求,我需要搜索一组文件夹和子文件夹,并显示状态信息到一个文本框,因为我这样搜索 -将状态消息异步写入文本框?

查找文件夹“C:\ Windows”...
找到8个文件...
复制文件的8至“d:\ TEMP” ......

我有做所有的搜索和东西的方法。我不知道如何定期向文本框显示状态消息(如上所述)。目前,表单等待方法完成,并一次显示所有消息。随着方法的进展,我希望它们能一个接一个地显示出来。

在此先感谢。

回答

1

使用BackgroundWorkerThread和ReportStatus函数。这样,您的用户界面将在搜索时发生响应。

2

为了正确解决这个问题,您的搜索功能需要在后台线程上运行。如果搜索发生在UI线程上,它将阻止更新显示,防止显示周期性状态消息。

在WinForms应用程序中执行此操作的最简单方法是使用BackgroundWorker。它至少支持在后台运行任务并将进度信息返回给UI线程。此外,还有很多教程可以在线获得,让您开始使用解决方案。