求助多线程

疯狂-的-蜗牛 2012-12-07 06:59:48
我需要用MFC对APK安装包里面的配置信息进行更改,以前的做法是用放一个函数里面,分为三步:1、解包;2、打包(写配置很简单,直接pass);3、数字签名;以上三步都需要调用CreateProcess创建进程。但是这样做出来后效果的确不怎么样,经常卡死。
于是,我尝试用多线程来做,也就是开三个线程。
第一次我用的是WaitForSingleObject(*,INFINITE);结果:主界面直接卡死,线程也跑不动了,程序直接死了。
第二次我用的临界区CRITICAL_SECTION,结果线程跑的很快,一下子就完成了,但是其实什么事情也没干。
三个线程必须是按顺序执行的,解包->打包->签名,而且都需要创建进程。
大家有没有什么好的方法啊,让线程依次执行,而主界面也不会卡死。
谢谢指点啊!!!
...全文
191 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
疯狂-的-蜗牛 2012-12-13
  • 打赏
  • 举报
回复
引用 4 楼 tiger9991 的回复:
最最主要的就是你别把界面线程当作一个工作线程了。不然你界面就卡住了,罢工了。 你因为不牵涉到3个流程的互相交互,全部是线性流程的,所以一个线程结束启动另外个线程是非常不错的选择。 我之前的业务比较庞大,是用线程池的,你这个简单不需要。单一线程传值即可。
一个线程解决了,谢谢各位,给分了。
疯狂-的-蜗牛 2012-12-09
  • 打赏
  • 举报
回复
引用 1 楼 hurryboylqs 的回复:
既然一次顺序执行,你就创建一个线程好了,所有事情在后台一个线程执行即可,跟本不存在你说的卡界面问题
有道理,我一直以来都认为这三步就得创建三个不同的线程 我去试试 谢谢
傻X 2012-12-09
  • 打赏
  • 举报
回复
最最主要的就是你别把界面线程当作一个工作线程了。不然你界面就卡住了,罢工了。 你因为不牵涉到3个流程的互相交互,全部是线性流程的,所以一个线程结束启动另外个线程是非常不错的选择。 我之前的业务比较庞大,是用线程池的,你这个简单不需要。单一线程传值即可。
MoreWindows 2012-12-07
  • 打赏
  • 举报
回复
三个线程必须是按顺序执行的,解包->打包->签名,而且都需要创建进程。 那还不如直接依次的启动三个进程。 进程线程的同步可以参考: http://blog.csdn.net/column/details/killthreadseries.html
hurryboylqs 2012-12-07
  • 打赏
  • 举报
回复
既然一次顺序执行,你就创建一个线程好了,所有事情在后台一个线程执行即可,跟本不存在你说的卡界面问题

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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