SHFileOperation 删文件 导致其他应用卡顿

shenchenman 2014-10-16 08:02:55
MFC工程,需要循环删除大量文件,调用SHFileOperation 删除的。
问题是删除过程中,会导致其他应用卡顿,无法正常操作。
请问有人碰到过该问题么,该怎么解决呢?
...全文
131 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenchenman 2014-10-21
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
每删除比如20个文件插入一次消息循环:

i=0;
while (1) {
 deletefile(i);
 i++;
 if (i%20==0) {
        MSG msg;
        if (GetMessage(&msg,NULL,0,0)) {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
 }
}
这么修改的确别的进程不卡了。 自己程序卡了。getmessage阻塞掉了都。
赵4老师 2014-10-21
  • 打赏
  • 举报
回复
引用 3 楼 shenchenman 的回复:
[quote=引用 2 楼 zhao4zhong1 的回复:] 每删除比如20个文件插入一次消息循环:

i=0;
while (1) {
 deletefile(i);
 i++;
 if (i%20==0) {
        MSG msg;
        if (GetMessage(&msg,NULL,0,0)) {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
 }
}
这么修改的确别的进程不卡了。 自己程序卡了。getmessage阻塞掉了都。[/quote] 将20改为100再试试。
小竹z 2014-10-17
  • 打赏
  • 举报
回复
造成其他应用卡顿,我觉得有可能是电脑配置差了或者是mfc项目线程优先级高了,耗时操作导致cpu忙不过来,分给其他应用时间少了,影响了整个系统响应速度。
赵4老师 2014-10-17
  • 打赏
  • 举报
回复
每删除比如20个文件插入一次消息循环:

i=0;
while (1) {
 deletefile(i);
 i++;
 if (i%20==0) {
        MSG msg;
        if (GetMessage(&msg,NULL,0,0)) {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
 }
}

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧