aardio 文档
aardio 范例:事件定时器
//事件定时器
import win.ui;
/*DSG{{*/
var winform = win.form(text="使用thread.event创建定时执行任务的线程";right=349;bottom=211;parent=...)
winform.add(
btnStart={cls="button";text="启动定时线程";left=61;top=113;right=181;bottom=155;z=1};
btnStop={cls="button";text="结束定时线程";left=192;top=113;right=312;bottom=155;disabled=1;z=4};
lbTip={cls="static";left=26;top=85;right=100;bottom=103;transparent=1;z=3};
static={cls="static";left=138;top=13;right=309;bottom=44;align="center";center=1;edge=1;z=5};
trackbar={cls="trackbar";left=15;top=52;right=319;bottom=82;max=1000;min=500;z=2}
)
/*}}*/
task_t = function(hwnd,ms){
import win;
import thread.event;
import console;
var evt = thread.event("定时事件 GUID:32DA0FC7-A96D-4850-9A28-DA1DD4464B44")
while( ! evt.wait(ms) ){
win.setText(hwnd,tostring( time() ) )
}
console.log("任务已完成")
}
import thread.event;
var evtTask = thread.event("定时事件 GUID:32DA0FC7-A96D-4850-9A28-DA1DD4464B44",false)
winform.btnStart.oncommand = function(id,event){
winform.btnStart.disabled = true;
winform.btnStop.disabled = false;
winform.trackbar.disabled = true;
hThread = thread.create(task_t,winform.static.hwnd,winform.trackbar.pos);
thread.waitOne(hThread)
winform.btnStart.disabled = false;
winform.btnStop.disabled = true;
winform.trackbar.disabled = false;
}
winform.btnStop.oncommand = function(id,event){
evtTask.set();//使事件对象切换为有信号状态,使wait函数退出
}
winform.trackbar.oncommand = function(id,event,pos){
winform.lbTip.text = owner.pos + "毫秒"
}
winform.show()
win.loopMessage();
Markdown 格式