博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个单元测试 学习 aysnc await
阅读量:6676 次
发布时间:2019-06-25

本文共 1524 字,大约阅读时间需要 5 分钟。

 

using System;using System.Threading.Tasks;using Microsoft.VisualStudio.TestTools.UnitTesting;namespace ypp.tests{    [TestClass]    public class AysncTest    {        [TestMethod]        public  void TestMethod1()        {            Console.WriteLine("testStart:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm ss"));            var xx = GetNick();            Console.WriteLine("testEnd:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm ss"));                                  //xx();        }        public async Task
GetNick() { return await Task.Run(() => { //等待10秒 System.Threading.Thread.Sleep(1000 * 10); var strNow = DateTime.Now.ToString("yyyy-MM-dd HH:mm ss"); Console.WriteLine("NotifyChange:" + strNow); return strNow; }); } }}

 

输出结果:

 

 

简单说明:

1. async 用来标记 该方式是否 支持异步( 如果方法体内没有 await 的话,则和正常同步方法一样),方法体内要有 await才能起到 异步效果 await==async wait

2. 当这么写的时候 会忽略异步 直接同步执行

[TestMethod]        public  void TestMethod1()        {            Console.WriteLine("testStart:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm ss"));            var xx = GetNick().Result;            Console.WriteLine("testEnd:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm ss"));                                  //xx();        }

 

 

从逐渐剖析Async中发现,Net提供的异步方式基本上一脉相承的,如:

1. net4.5的Async,抛去语法糖就是Net4.0的Task+状态机。 
2. net4.0的Task, 退化到3.5即是(Thread、ThreadPool)+实现的等待、取消等API操作。

转载于:https://www.cnblogs.com/duanweishi/p/4679799.html

你可能感兴趣的文章
简易图片轮播效果
查看>>
Spring Boot 数据库连接池 Druid
查看>>
NodeList对象的特点
查看>>
【转载】【原创】生命中,要有自己的一方晴天
查看>>
JQuery操作CheckBox和Radio
查看>>
快速求幂
查看>>
gulp初学
查看>>
JS设置localStorage有效期
查看>>
Ajax常用写法
查看>>
测试用例设计-WEB通用测试用例
查看>>
js中将数字和字符串相互转换的方法(转自脚本之家www.jb51.net)
查看>>
centos6.5-VMware虚拟机-双网卡绑定
查看>>
scala言语基础学习二
查看>>
《团队-科学计算器-项目总结》
查看>>
理解单例模式
查看>>
从零开始,搭建博客系统MVC5+EF6搭建框架(1),EF Code frist、实现泛型数据仓储以及业务逻辑...
查看>>
软件工程结对作业01
查看>>
面向对象----方法的重载
查看>>
阿花宝宝 Java基础笔记 之 多态
查看>>
589. N叉树的前序遍历
查看>>