哈尔滨地区企业如何外包电子商务网站建设及备案流程?
摘要:电子商务网站建设备案须知,哈尔滨网站建设方案外包,人才招聘网网站策划方案,网站策划编辑的职责文章目录 前言Task返回值无参返回有参返回 async和await返回值await搭配使用Main async改造 Task进阶Task线程取消测
电子商务网站建设备案须知,哈尔滨网站建设方案外包,人才招聘网网站策划方案,网站策划编辑的职责文章目录 前言Task返回值无参返回有参返回 async和await返回值await搭配使用Main async改造 Task进阶Task线程取消测试用例超时设置 线程暂停和继续测试用例 多任务等最快多任务全等待 结论 前言
Task是对于Thread的封装#xff0c;是极其优化的设计#xff0c;更加方便了我… 文章目录 前言Task返回值无参返回有参返回 async和await返回值await搭配使用Main async改造 Task进阶Task线程取消测试用例超时设置 线程暂停和继续测试用例 多任务等最快多任务全等待 结论 前言
Task是对于Thread的封装是极其优化的设计更加方便了我们如何操控线程
Task
Task声明形如
public static Task Sleep()
{}Task是一种类型
返回值
直接声明Task是需要返回值的。
无参返回
public static Task Sleep(int second)
{return Task.CompletedTask;
}
有参返回 public static TaskT Sleep(){return Task.FromResult(T);}
//举例返回参数只能唯一除非使用元祖public static Taskstring Sleep(){return Task.FromResult(Hello world!);}
使用Task.Result获取返回值 var res Sleep().Result;async和await
async和await是对于异步事件的控制方便我们对异步事件的操控。
返回值
使用async之后可以直接设置返回值
///有参返回public static async Taskstring Sleep(){return Hello world;}///无参返回public static async Task Sleep(){}await搭配使用
异步事件的等待使用await方法 public static async Task Sleep(int second){await Task.Delay(second * 1000);Console.WriteLine($等待{second}s);}static void Main(string[] args){Sleep(3);Sleep(2);Sleep(1);Console.WriteLine(运行完毕);//使用键盘键入事件阻塞主进程主进程结束程序会立即退出Console.ReadKey();}打印结果
打印结果显示
同步事件先结束异步事件互相不阻塞3,2,1同时开始等待3,2,1s打印1,2,3。
Main async改造
主程序是Void无法等待 将Void改成Task即可等待异步事件 打印结果服务预期等待异步事件结束后运行
Task进阶
C#Task取消任务执行CancellationTokenSource C# Task 暂停与取消
Task线程取消
以前Thread有Abort()方法强行销毁线程但是这个方法用于极大的安全问题已经被弃用。 线程不能直接被销毁只能通过抛出异常来取消线程。
//声明token
var tokenSource new CancellationTokenSource();
//注册异常抛出
tokenSource.Token.ThrowIfCancellationRequested();
//注册取消事件回调
tokenSource.Token.Register(()
{Console.WriteLine(线程已被取消);
});。。。。。。
