aardio 文档
aardio 范例: lib/service.threads.aardio
namespace service.threads;
//服务主线程
main = function(serviceName){
//要在线程函数内部导入线程需要的库
import service;
import thread.event;
import fsys.log;
//向桌面发送对话框
//service.msgbox("服务已启动");
var evt = thread.event( _event_tag ++ serviceName,false);
while( ! evt.wait(1000) ){ //每1000毫秒执行一次
fsys.log.print(..time.tick()+' 服务主线程\r\n');
}
}
//注意这也是一个独立的线程,用户控制服务停止或启动时都会触发此函数
control = function(control,eventType,pEventData){
//要在线程函数内部导入线程需要的库
import service;
import thread.event;
var evtTask = thread.event( _event_tag ++ owner.serviceName,false);
if( control == 0x1/*_SERVICE_CONTROL_STOP*/ ){
//控制线程中更新 srvStatus,第一个参数只要指定需要更新的字段就行了
service.updateStatus({currentState = 3/*_SERVICE_STOP_PENDING*/},owner.serviceName);
evtTask.set();//使事件对象切换为有信号状态,使 wait 函数退出
}
return 0/*_NOERROR*/
}
_event_tag = "NT.SERVICE.CONTROL.";
Markdown 格式