# win.taskScheduler 库模块帮助文档

## win 成员列表 <a id="win" href="#win">&#x23;</a>

### win.taskScheduler <a id="win.taskScheduler" href="#win.taskScheduler">&#x23;</a>
计划任务

### win.taskScheduler() <a id="win.taskScheduler" href="#win.taskScheduler">&#x23;</a>
[返回对象:winTaskSchedulerObject](#winTaskSchedulerObject)

### win.taskScheduler(窗体对象) <a id="win.taskScheduler" href="#win.taskScheduler">&#x23;</a>
参数可省略  
注意仅在线程启动消息循环后起作用  
执行计划任务会阻塞定时器直到任务执行完成  
不希望阻塞定时器可使用 winform.setTimeout、或多线程异步执行代码

## winTaskSchedulerObject 成员列表 <a id="winTaskSchedulerObject" href="#winTaskSchedulerObject">&#x23;</a>

### winTaskSchedulerObject.create("名字",执行函数) <a id="winTaskSchedulerObject.create" href="#winTaskSchedulerObject.create">&#x23;</a>

```aardio
winTaskSchedulerObject.create("计划任务名字",function( arguments ){  

} , /*其他调用任务的参数*/ )
```

### winTaskSchedulerObject.create() <a id="winTaskSchedulerObject.create" href="#winTaskSchedulerObject.create">&#x23;</a>
[返回对象:winTaskSchedulerTaskObject](#winTaskSchedulerTaskObject)

### winTaskSchedulerObject.delete("任务名字") <a id="winTaskSchedulerObject.delete" href="#winTaskSchedulerObject.delete">&#x23;</a>
删除指定任务

### winTaskSchedulerObject.deserialize <a id="winTaskSchedulerObject.deserialize" href="#winTaskSchedulerObject.deserialize">&#x23;</a>
反序列化计划任务

### winTaskSchedulerObject.deserialize(字符串,默认回调函数) <a id="winTaskSchedulerObject.deserialize" href="#winTaskSchedulerObject.deserialize">&#x23;</a>
反序列化计划任务,并指定默认回调函数

### winTaskSchedulerObject.get("任务名字") <a id="winTaskSchedulerObject.get" href="#winTaskSchedulerObject.get">&#x23;</a>
读取指定任务

### winTaskSchedulerObject.get() <a id="winTaskSchedulerObject.get" href="#winTaskSchedulerObject.get">&#x23;</a>
[返回对象:winTaskSchedulerTaskObject](#winTaskSchedulerTaskObject)

### winTaskSchedulerObject.serialize() <a id="winTaskSchedulerObject.serialize" href="#winTaskSchedulerObject.serialize">&#x23;</a>
序列化计划任务配置并返回字符串

### winTaskSchedulerObject.set("任务名字",执行函数) <a id="winTaskSchedulerObject.set" href="#winTaskSchedulerObject.set">&#x23;</a>
修改任务执行函数

### winTaskSchedulerObject.start(任务检测间隔) <a id="winTaskSchedulerObject.start" href="#winTaskSchedulerObject.start">&#x23;</a>
开始运行计划任务  
注意仅在线程启动消息循环后起作用  
检测间隔参数可选,默认为1000毫秒  

执行计划任务会阻塞定时器直到任务执行完成  
如果在计划任务中执行了win.delay等继续消息循环的代码，  
在计划任务退出前不会再触发同一计划任务（重入）。  

不希望阻塞定时器可使用 winform.setTimeout、或多线程异步执行代码

### winTaskSchedulerObject.stop() <a id="winTaskSchedulerObject.stop" href="#winTaskSchedulerObject.stop">&#x23;</a>
停止计划任务

## winTaskSchedulerTaskObject 成员列表 <a id="winTaskSchedulerTaskObject" href="#winTaskSchedulerTaskObject">&#x23;</a>

### winTaskSchedulerTaskObject.beginTime <a id="winTaskSchedulerTaskObject.beginTime" href="#winTaskSchedulerTaskObject.beginTime">&#x23;</a>
开始时间  
该值默认为空

### winTaskSchedulerTaskObject.enabled <a id="winTaskSchedulerTaskObject.enabled" href="#winTaskSchedulerTaskObject.enabled">&#x23;</a>
是否允许执行

### winTaskSchedulerTaskObject.expirationTime <a id="winTaskSchedulerTaskObject.expirationTime" href="#winTaskSchedulerTaskObject.expirationTime">&#x23;</a>
结束时间  
该值默认为空

### winTaskSchedulerTaskObject.interval <a id="winTaskSchedulerTaskObject.interval" href="#winTaskSchedulerTaskObject.interval">&#x23;</a>

```aardio
winTaskSchedulerTaskObject.interval = { 
	second = 间隔秒数 /*请指定间隔执行的时间字段值*/;
	minute = 间隔分钟数 ;
	hour = 间隔小时数 ;
	day = 间隔天数 ;
	month = 间隔月数 ;
}
```

### winTaskSchedulerTaskObject.lastResult <a id="winTaskSchedulerTaskObject.lastResult" href="#winTaskSchedulerTaskObject.lastResult">&#x23;</a>
最后一次执行的返回值

### winTaskSchedulerTaskObject.lastRunTime <a id="winTaskSchedulerTaskObject.lastRunTime" href="#winTaskSchedulerTaskObject.lastRunTime">&#x23;</a>
任务最后运行的时间

### winTaskSchedulerTaskObject.pending <a id="winTaskSchedulerTaskObject.pending" href="#winTaskSchedulerTaskObject.pending">&#x23;</a>
任务是否在等待状态  
如果正在执行任务，此属性返回false

### winTaskSchedulerTaskObject.time <a id="winTaskSchedulerTaskObject.time" href="#winTaskSchedulerTaskObject.time">&#x23;</a>

```aardio
winTaskSchedulerTaskObject.time = { 
	second =  秒 /*请指定准时启动任务的时间字段值,  
可以指定数值,也可以用数组指定多个值,  
不作为条件匹配的时间字段不用指定  
即使任务在启动时间内完成也不会重新启动任务*/;
	minute = 分钟 ; 
	hour = 小时 ;
	day = 日 ;
	month = 月 ;
	dayofweek = {1,2,3,4,5,6,0}
}
```

