zoukankan      html  css  js  c++  java
  • C# async 方法怎么被正确的消费 (新篇)

    我早些时候写过一篇同名blog 上面的一些 观点是不准确的,欠缺的

    除了使用复杂的 局部委托对 async方法进行消费以外,官方的api的标准做法是

    直接在同步环境里 调用async的方法后面加一个 .Wait()即可 这个简单且容易,也没有编译警告

    另外还有静态方法 Task.WaitAll, WaitAny ,等方法 以带来异步编程的时间收益

    我想补充的另一点是,async,await这种 异步模型得到了广泛认可,越发成熟优秀,比如 js里面 也同样被引入

    在C#里面 委托是函数式编程的一个重要内核,在现在的C#的编程里面 委托被大量使用,比如linq模式 .net core的 中间件模式等

    委托有一个不易察觉的特征必须要注意,一个委托可以加上或取消async 不会报错,显示它们是同一个委托实例的合法实例。举个例子:

            delegate Task Dm1(int id);
            delegate void Dm2(int id);
            void m01() {
                Dm1 dm1=id=>Task.CompletedTask;
                Dm1 dm12= async id=>await Task.Run(()=>id++);
                Dm2 dm2=id=>id++;
                Dm2 dm22= async id=>await Task.Run(()=>id++);
            }
  • 相关阅读:
    FTP协议操作
    [转贴]SQL2005数据类型
    传智博客学习0512
    20120515传智学习
    20120516分析三层中的null的处理
    20120520晚
    你懂不懂我不知道,反正我是晕了
    20120509小记
    javascript 循环语句 while、dowhile、forin、for用法区别
    C#的一些学习方法
  • 原文地址:https://www.cnblogs.com/ProjectDD/p/11345957.html
Copyright © 2011-2022 走看看