• 一个单元测试 学习 aysnc await


    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<string> 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操作。

  • 相关阅读:
    Java设计模式—状态模式
    Java设计模式—备忘录模式
    android AsyncTask介绍
    Android UI线程和非UI线程
    Java设计模式—代理模式
    Java设计模式—命令模式
    <Android 应用 之路> MPAndroidChart~PieChart
    FPGA的EPCS 配置的2种方法 FPGA下载程序的方法(EPCS)
    如何将.sof转换成.jic
    quartus ii工程文件的分析
  • 原文地址:https://www.cnblogs.com/duanweishi/p/4679799.html
Copyright © 2020-2023  润新知