Async 与Await的简单使用

来源:互联网 发布:马克思 青少年 知乎 编辑:程序博客网 时间:2024/06/18 04:01

C# 中的 async 和 await 关键字是异步编程的核心。 通过使用这两个关键字,你可以使用 .NET framework 或 Windows 运行时中的资源轻松创建异步方法(几乎与创建同步方法一样轻松)。 通过使用被称为异步方法的 async 和 await 定义的异步方法。
首先举一个Thread多线程的例子:

class Program{    static void Main(string[] args)    {        Console.WriteLine("main thread start..");        Thread th = new Thread(ThFun);        th.Start();        Thread.Sleep(1000);        Console.WriteLine("main thread end");        Console.ReadLine();    }      static void ThFun()    {        Console.WriteLine("开始执行异步操作");        for (int i = 0; i < 10; i++)        {            Console.WriteLine("执行异步操作" + i.ToString() + "..");            Thread.Sleep(1000);        }        Console.WriteLine("异步操作执行完成");    }}
运行结果:

main thread start..
开始异步代码
异步执行0..
异步执行1..
main thread end
异步执行2..
异步执行3..
异步执行4..
异步代码执行完毕

使用Async与Await异步编程的例子: 

class Program{    static void Main(string[] args)    {        Console.WriteLine("main thread start..");        MethodAsync();        Thread.Sleep(1000);        Console.WriteLine("main thread end");        Console.ReadLine();    }     static async void MethodAsync()   {        Console.WriteLine("异步代码开始");        await Method();        Console.WriteLine("异步代码执行完毕");    }     static async Task Method()    {        for (int i = 0; i < 10; i++)        {            Console.WriteLine("异步执行" + i.ToString() + "..");            await Task.Delay(1000);         }          }}
运行结果:

main thread start..
开始异步代码
异步执行0..
异步执行1..
main thread end
异步执行2..
异步执行3..
异步执行4..
异步代码执行完毕

0 0
原创粉丝点击