aardio 文档

aardio 范例: 线程管理器

//线程管理器
//这个东西主要是用在界面线程里,但为了简化代码,这里用一个控制台来演示

import console;
import thread.manage;

//创建线程管理器
manage = thread.manage(3);

var thrdFunc = function(name){

    import win;
    import console;

    for(i=1;10;1){ 
        console.log( thread.getId(),name )
        if( !win.delay(1000) ){ 
            //主线程可以用 manage.quitMessage()中断这个循环
            console.log("收到退出指令")
            return;
        }
    } 
    return 67;
}

//创建线程,如果线程池已满会自动等待其他线程结束
manage.create(thrdFunc,"线程1").onEnd = function(...){
    console.log("线程1的回调",...);
} 

//创建线程(忽略线程返回值),如果线程池已满会自动等待其他线程结束
manage.createLite(thrdFunc,"线程2").onEnd = function(){
    console.log("线程2的回调");
}

manage.create(thrdFunc,"线程3");

/*
创建所有线程以后,
必须调用 manage.waitClose() 函数等待所有线程执行完成,
manage.waitClose() 也会负责触发 onEnd 回调,并自动关闭已结束线程的线程句柄。
*/
manage.waitClose(); 

console.pause();

Markdown 格式