主线程与子线程之间的通信问题 50

…………动作:点击了某按钮之后.............................forfileinlsit_file:#调用python命令执行脚本ifcasei... …………动作:点击了某按钮之后.............................

for file in lsit_file:
#调用python命令执行脚本
if case in file:
#创建新线程去执行命令(不然主平台会卡爆!!!)
t1 = threading.Thread(target=os.system,args=('python %s'%file,))
t1.setDaemon(False)
t1.start()
while t1.isAlive():
pass

现象:我的主线程,也就是程序本身是一个UI界面,在执行到上面代码的while语句的时候,会卡起!

需求:for循环读取需要执行系统命令的文件列表,对每一个文件,开辟新线程去执行命令,如果此文件执行完毕,返回给主界面执行状态,继续执行下一个文件;并且,在等待某文件执行完的过程中,要求主界面可操作(比如我可以点击停止,来停止所有线程)。

请教大神,如何优化? 不胜感激。
展开
 我来答
绿衣人敲门
2015-04-16 · 知道合伙人软件行家
绿衣人敲门
知道合伙人软件行家
采纳数:18765 获赞数:63775
毕业于西北大学计算机网络技术专业,现在在西安电力学院进行网络推广维护工作!

向TA提问 私信TA
展开全部
用SendMessage或PostMessage向主线程的主窗体发送自定义消息,在消息处理函数中显示数据 希望对你有所帮助!
追问
SendMessage或PostMessage是win32的吧?  跟我这线程有什么关系? 你的方案能具体点吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式