# thread.manage 库模块帮助文档

## thread 成员列表 <a id="thread" href="#thread">&#x23;</a>

### thread.manage <a id="thread.manage" href="#thread.manage">&#x23;</a>
线程管理器

### thread.manage() <a id="thread.manage" href="#thread.manage">&#x23;</a>
创建线程管理器。  
可使用一个参数指定线程池大小，  
默认为 63,该值必须小于 64  

[返回对象:threadMgrObject](#threadMgrObject)

## ThreadMgrCbLiteObject 成员列表 <a id="ThreadMgrCbLiteObject" href="#ThreadMgrCbLiteObject">&#x23;</a>

## ThreadMgrCbLiteObject 事件列表 <a id="ThreadMgrCbLiteObjectEvent" href="#ThreadMgrCbLiteObjectEvent">&#x23;</a>

### ThreadMgrCbLiteObject.onEnd <a id="ThreadMgrCbLiteObject.onEnd" href="#ThreadMgrCbLiteObject.onEnd">&#x23;</a>

```aardio
ThreadMgrCbLiteObject.onEnd = function(){
	/*线程结束回调此函数，无参数。  
必须调用 thread.manage 对象的 waitOne 或 waitClose 函数  
才会触发 onEnd 回调函数*/	
}
```

## ThreadMgrCbObject 成员列表 <a id="ThreadMgrCbObject" href="#ThreadMgrCbObject">&#x23;</a>

## ThreadMgrCbObject 事件列表 <a id="ThreadMgrCbObjectEvent" href="#ThreadMgrCbObjectEvent">&#x23;</a>

### ThreadMgrCbObject.onEnd <a id="ThreadMgrCbObject.onEnd" href="#ThreadMgrCbObject.onEnd">&#x23;</a>

```aardio
ThreadMgrCbObject.onEnd = function(...){
	/*线程结束回调此函数，参数为线程执行函数返回的值。  
必须调用 thread.manage 对象的 waitOne 或 waitClose 函数  
才会触发 onEnd 回调函数*/	
}
```

## threadMgrObject 成员列表 <a id="threadMgrObject" href="#threadMgrObject">&#x23;</a>

### threadMgrObject.busy() <a id="threadMgrObject.busy" href="#threadMgrObject.busy">&#x23;</a>
如果线程池里仍有未关闭的线程句柄返回 false，否则返回 true 。  
必须调用 waitOne 或 waitClose 函数才会自动关闭已结束的线程句柄

### threadMgrObject.create <a id="threadMgrObject.create" href="#threadMgrObject.create">&#x23;</a>
创建线程，  
如果线程池已满会自动等待其他线程结束，并自动关闭已结束的线程句柄

### threadMgrObject.create() <a id="threadMgrObject.create" href="#threadMgrObject.create">&#x23;</a>
[返回对象:ThreadMgrCbObject](#ThreadMgrCbObject)

### threadMgrObject.create(线程执行函数,任意个启动参数) <a id="threadMgrObject.create" href="#threadMgrObject.create">&#x23;</a>
创建线程。  
此函数参数与 thread.create 函数的参数一致。  

返回对象可指定 onEnd 成员函数，  
线程结束将线程函数返回值作为参数回调 onEnd 函数。  
必须调用 thread.manage 对象的 waitClose 函数  
才会触发 onEnd 回调函数

### threadMgrObject.createLite <a id="threadMgrObject.createLite" href="#threadMgrObject.createLite">&#x23;</a>
创建线程，但忽略线程执行函数的返回值。  
如果线程池已满会自动等待其他线程结束，并自动关闭已结束的线程句柄

### threadMgrObject.createLite() <a id="threadMgrObject.createLite" href="#threadMgrObject.createLite">&#x23;</a>
[返回对象:ThreadMgrCbLiteObject](#ThreadMgrCbLiteObject)

### threadMgrObject.createLite(线程执行函数,任意个启动参数) <a id="threadMgrObject.createLite" href="#threadMgrObject.createLite">&#x23;</a>
创建线程但忽略线程执行函数的返回值。  
此函数参数与 thread.create 函数的参数一致。  

返回对象可指定 onEnd 成员函数，  
线程函数结束将回调 onEnd 函数，回调函数无参数。  
必须调用 thread.manage 对象的 waitClose 函数  
才会触发 onEnd 回调函数

### threadMgrObject.createSuspended() <a id="threadMgrObject.createSuspended" href="#threadMgrObject.createSuspended">&#x23;</a>
创建线程并且暂停执行  
如果线程池已满会自动等待其他线程结束，并自动关闭已结束的线程句柄

[返回对象:ThreadMgrCbObject](#ThreadMgrCbObject)

### threadMgrObject.createSuspended(线程执行函数,任意个启动参数) <a id="threadMgrObject.createSuspended" href="#threadMgrObject.createSuspended">&#x23;</a>
创建线程并且暂停执行。  
此函数参数与 thread.create 函数的参数一致。  

返回对象可指定 onEnd 成员函数，  
线程结束将线程函数返回值作为参数回调 onEnd 函数。  
必须调用 thread.manage 对象的 waitClose 函数  
才会触发 onEnd 回调函数

### threadMgrObject.quitMessage() <a id="threadMgrObject.quitMessage" href="#threadMgrObject.quitMessage">&#x23;</a>
向所有线程发送 _WM_QUIT 消息  
线程内 win.delay 函数可接受该消息并返回 false 值

### threadMgrObject.resume() <a id="threadMgrObject.resume" href="#threadMgrObject.resume">&#x23;</a>
所有线程继续执行

### threadMgrObject.suspend() <a id="threadMgrObject.suspend" href="#threadMgrObject.suspend">&#x23;</a>
所有线程暂停。  
注意线程是否正在使用互斥锁

### threadMgrObject.waitClose() <a id="threadMgrObject.waitClose" href="#threadMgrObject.waitClose">&#x23;</a>
等待所有线程返回，不阻塞界面线程消息处理。  
并关闭所有线程句柄。  

添加线程以后，必须调用 waitClose 函数

### threadMgrObject.waitOne() <a id="threadMgrObject.waitOne" href="#threadMgrObject.waitOne">&#x23;</a>
等待任一线程返回，不阻塞界面线程消息处理。  
并关闭已结束的线程句柄。  
失败返回 null  

waitClose 函数实际上循环调用 waitOne 函数。
