首先说明本帖是C++语言写的,其他语言可以参照。
一般情况下,进度条容易出现卡顿或者卡死现象,是由于控制进度条的显示和代码的计算处于同一线程下,线程同时处理时就容易出错;我们的改进思路就是用多线程单独创建一个线程专门用来控制进度条的显示,让进度条控制与代码计算分开了管理从而解决问题。
以下的“~”都是指你创建工程时你自己定义的工程名;
1.在主入口文件的“~.h”文件中添加一个函数声明:
LPVOID AfxGetProgressWnd(); //该函数主要用于后期调用时获得指向进度条窗口的指针;
2.在主入口文件的“~.cpp”文件中添加上述函数的实现部分,顺便再添加一个全局变量“LPVOID G_ProgressWnd”用来存放进度条窗口指针,以及后边需要用到的多线程函数的内容“VOID CreateProgressDlg()”;
LPVOID G_ProgressWnd; //定义一个全局变量用于创建进度条窗口后存放其指针;
LPVOID AfxGetProgressWnd() //该函数主要用于后期调用时获得指向进度条窗口的指针;
{
return G_ProgressWnd;
}
VOID CreateProgressDlg() //创建多线程时调用的多线程函数;
{
~Dlg dlg; &