你的程序关闭了,
任务管理器的进程当然会同时关闭。
如果你的窗口关闭就是退出程序,
那么,你在窗口关闭后代码就不应当继续运行。
aardio并不会帮你决定这些事,因为你的需求并不是其他人的需求。
窗口关闭了,程序当然是可以继续运行的。例如你可能在关闭窗口以后,后台需要做一些其他的事情。甚至有的软件根本就不需要窗口。如果这时候没有经过你同意,直接把你的进程杀了,这时候你可能又要纠结别人为什么没经过你的同意,就把你的进程杀了。
写代码以前,先去看一下开始页的入门必读教程,了解一些基础的编程知识。
例如你的代码,很多低级错误,这些都是入门教程中有讲到的东西,例如界面线程不能用 sleep,不能写耗时循环,你全都是跟教程反过来的。。。。。。
例如你的程序,耗时循环放到工作线程里就可以了:
import win.ui;
/*DSG{{*/
mainForm = win.form(text="aardio form";right=499;bottom=399)
mainForm.add(
button={cls="button";text="开始循环";left=152;top=173;right=396;bottom=229;z=1}
)
/*}}*/
mainForm.button.oncommand = function(id,event){
//创建后台线程循环
thread.invoke(
function(){
import mouse;
var countLoop = 0
while( countLoop<1000 ){
countLoop++
sleep(10000);
};
}
)
}
mainForm.show();
win.loopMessage();
用界面定时器做循环也可以: import win.ui;
/*DSG{{*/
mainForm = win.form(text="aardio form";right=499;bottom=399)
mainForm.add(
button={cls="button";text="开始循环";left=152;top=173;right=396;bottom=229;z=1}
)
/*}}*/
mainForm.button.oncommand = function(id,event){
var countLoop = 0
mainForm.setInterval(
1000,function(hwnd,msg,id,tick){
countLoop ++;
if(countLoop < 1000 ) return 0;//停止循环
}
)
}
mainForm.show();
win.loopMessage();
把你代码中的sleep简单的换成 win.delay 也可以
import win.ui;
/*DSG{{*/
mainForm = win.form(text="aardio form";right=499;bottom=399)
mainForm.add(
button={cls="button";text="开始循环";left=152;top=173;right=396;bottom=229;z=1}
)
/*}}*/
mainForm.button.oncommand = function(id,event){
var countLoop = 0
while( countLoop<1000 ){
countLoop++
if( !win.delay(10000) ) break ;
};
}
mainForm.show();
win.loopMessage(); 解决的方法有很多,教程、范例、文档里里都写了这些东西。
|