zoukankan      html  css  js  c++  java
  • 异步编程(三)

    4. c#4.x Task的新特性 Async && Await

    这种编程方式是对之前Task的补充和扩展,简化了异步编程,让喜欢用同步编程的同学,使用起来更顺手:

    static void Main()
            {
                Console.WriteLine("Main Thread begin Thread ID:{0}",Thread.CurrentThread.ManagedThreadId);
                Program prgo = new Program();
                prgo.DoSomething(3);
                Console.WriteLine("Main Thread Lasting Thread ID:{0}", Thread.CurrentThread.ManagedThreadId);
                Console.Read();
            }
    
            public async void DoSomething(int id)//这里开启一个异步方法, Async 标志
            {
                await LoopingAjob(id);
               // await Task.Run(() => { Console.WriteLine("A task awit test {0}",id); });
            }
            public  Task LoopingAjob(int id)//这里是一个执行的任务
            {
                return Task.Run(()=> {
                    Thread.Sleep(1000);
                    Console.WriteLine("Task {0} run-> Thread ID:{1}",id,Thread.CurrentThread.ManagedThreadId);
                });   
            }


    image


    Await 表示等待,等待异步的完成,并在当刻阻塞线程,直到异步的完成; await可以标记任务 和异步方法

    await Task.Run(() => { Console.WriteLine("A task awit test {0}",id); });

  • 相关阅读:
    GNOME on Arch Linux
    忽然想通不喜欢搞前端的原因
    可以一时气馁,不能放弃
    Hack语言类型化简介
    标榜
    Hack其实是一门好语言
    Focus
    PHP旧系统基于命名空间重构经验
    少即是多的设计
    IDDD 实现领域驱动设计-一个简单的 CQRS 示例
  • 原文地址:https://www.cnblogs.com/yeshuimaowei/p/7466754.html
Copyright © 2011-2022 走看看