前言:
①取消task任务之CancellationTokenSource的用法;
②task的线程管控方法Task..Wait(time),(), (),.
1. 声明参数
CancellationTokenSource tokenSource = new CancellationTokenSource();
CancellationToken token = ;
ManualResetEvent resetEvent = new ManualResetEvent(true);
2. 定义Task
Task task = new Task(async () => {
while (true) {
if () {
return;
}
// 初始化为true时执行WaitOne不阻塞
();
// Doing something.......
// 模拟等待100ms
await (100);
}
}, token);
();
3. 暂停Task
();
4. 继续Task
();
5. 取消Task
();
实例:
#region TASK用法举例
static void TasKTest()
{
//带返回值的task
Task<String> mytask = (async () =>
{
await (5000);
return "老铁666";
}, );
//();
while (!(100)) //在指定时间执行完成就返回true
{
(".");
}
();//task任务取消,所以获取会报错
Task taskFactory = (() =>
{
(1000);
("perfect!");
});
();
();//taskFactory任务完成才往下执行
(mytask, taskFactory);//所有任务完成再往下执行
(mytask, taskFactory);//任一任务完成就往下执行
();
Task taskTest = (DoOnSecond);//ContinueWith用法举例
}
static void DoOnSecond(Task t)
{
("task {0} finished", );
("this task id {0}", );
("do some cleanup");
}
#endregion