一个用多线程实现文件查找的例子
2006-07-20 11:42:06 来源:WEB开发网核心提示:本文示例源代码或素材下载 本程序用多线程的思想实现了一个文件查找类CRapidFinder,以加速文件的查找,运行效果图如下:其中成员函数://设置程序主窗口句柄,一个用多线程实现文件查找的例子,要匹配的文件名,路径名void FinderSet(HWND MainHwnd,CString MatchName=
本文示例源代码或素材下载
本程序用多线程的思想实现了一个文件查找类CRapidFinder,以加速文件的查找,运行效果图如下:
其中成员函数:
//设置程序主窗口句柄,要匹配的文件名,路径名
void FinderSet(HWND MainHwnd,CString MatchName="*.*",CString MatchDir="");
//设置线程数及优先级
void ThreadSet(LONG MaxThreadCount=5,int priority=0);
//搜索选项
void FinderOption(FINDEROPTION FinderOption);
//查找操作
BOOL StartFinder(); //开始查找
void PauseFinder(); //暂停查找
void ResumeFinder(); //继续查找
void StopFinder(); //停止查找
void FinderReset(); //查找重置
//搜索选项
void FinderOption(FINDEROPTION FinderOption);
每个线程通过自定义的消息与UI线程通信,反映当前的查找进度与查找结果。
//自定义通知消息==========================================================
//WM_THREADEXIT 主线程结束 WPARAM: 结束码
//WM_THREADCOUNT 活动线程数目 WPARAM: 线程数
//WM_FINDERITEM 查找结果 WPARAM: 结果字符串地址 LPARAM:文件属性
//WM_THREADPAUSE 程序暂停
//WM_FINDERFOLDER当前查找目录 WPARAM: 目录字符串地址
//==================================================================
可通过ThreadSet()设置线程的数目与优先级,这样MainThreadProc()中就会产生相应数目的线程
更多精彩
赞助商链接