请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册
查看: 2194|回复: 3

thread.manage中的onEnd为什么不执行?

[复制链接]

14

主题

172

帖子

595

积分
交易币
0

编程三段

Rank: 4

发表于 2015-11-11 23:15:10 | 显示全部楼层 |阅读模式
[aardio] 纯文本查看 复制代码
import win.ui;
import console;
/*DSG{{*/
var winform = ..win.form(text="aardio form";right=599;bottom=399)
winform.add(
btnBegin={cls="button";text="开启线程";left=96;top=228;right=184;bottom=276;z=1};
btnEnd={cls="button";text="通知结束线程";left=260;top=228;right=360;bottom=274;z=2}
)
/*}}*/

import thread.manage;
manage = thread.manage()
winform.btnBegin.oncommand = function(id,event){
	io.open()
	for(i=1;3;1){
		manage.create(function(num){
			import win
			for(i=1;5;1){			
				io.print("线程运行中...",i)
				if(!win.delay(200)){break ;}
			}
			return num;
		},i).onEnd = function(...){
			//当点击结束按钮时,线程结束时这里怎么就不执行?
			console.log("线程结果",...)
		}
	}
	manage.waitClose()
}
winform.btnEnd.oncommand = function(id,event){
	manage.quitMessage();
}
winform.show() 
win.loopMessage();

回复

使用道具 举报

2

主题

118

帖子

99

积分
交易币
0

编程一段

Rank: 2

发表于 2015-11-12 00:15:59 | 显示全部楼层
如果你点“结束”,他还是执行,
你可能又有话要说了:“我都让你全部退出了你还执行个球啊.......”

manage.quitMessage(); 通常用在程序退出的时候,这边用户一点退出,你那边哗啦啦的onEnd全跳出来执行了,如果碰到个喜欢钻牛角尖的,他偏要在 onEnd中来个 xxxform.doModal(),然后他就着较上劲了:“你看看你看看,给个解释,为什么退出了程序还要执行?!”

如果标准库不让你满意,可去提交标准库改进意见,其实这个东西还不好改,标准库要改了,可能又有人不满了:“你看看上个版本你退出不执行onEnd,我一更新就不一样了,改以前问过我么?!”,所以这个事,我给你个建议,你自己去复制个 micksoft.threadManage 默默的改一下就可以了。


回复 支持 反对

使用道具 举报

14

主题

172

帖子

595

积分
交易币
0

编程三段

Rank: 4

 楼主| 发表于 2015-11-12 13:30:48 | 显示全部楼层
perfect 发表于 2015-11-12 00:15
如果你点“结束”,他还是执行,
你可能又有话要说了:“我都让你全部退出了你还执行个球啊.......”

恩,谢谢指点
回复 支持 反对

使用道具 举报

0

主题

1

帖子

1

积分
交易币
0

新手入门

Rank: 1

发表于 2016-2-20 03:10:33 | 显示全部楼层
weishenm a a
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



GMT+8, 2021-4-15 00:19 , Processed in 0.104049 second(s), 25 queries .

© 2001-2011 Powered by Discuz! X3.2.

快速回复 返回顶部 返回列表