码迷,mamicode.com
首页 > Windows程序 > 详细

C#异步学习一

时间:2017-07-13 23:44:59      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:输出   div   size   使用   test   ons   执行   http   i++   

运行以下代码:

static void Main(string[] args)
{
    Task t = TaskTest();
}

private static async Task TaskTest()
{
    await DoWork();
    Console.WriteLine("TaskTest");
}

private static async Task DoWork()
{
    Console.WriteLine("Hello World!");
    for (int i = 0; i < 3; i++)
    {
        await Task.Delay(1000);
        Console.WriteLine("Working...{0}", i);
    }
}

运行结果如下:

技术分享

结论:

1.异步方法被标记async

2.被标记async的方法必须使用await关键字,重点是await

  当方法运行时遇到某个await关键字,编译器会开辟一个独立的线程,将其后的运行代码会放入该线程中运行。

3.代码执行分析

static void Main(string[] args)
{
    //程序入口
    Task t = TaskTest();//进入TaskTest()
}

private static async Task TaskTest()
{
    await DoWork();//遇到await,执行DoWork(),开辟一个新线程执行之后的Console.WriteLine("TaskTest");代码
    Console.WriteLine("TaskTest");
}

private static async Task DoWork()
{
    Console.WriteLine("Hello World!");//在控制台输出“Hello Wrold!”
    for (int i = 0; i < 3; i++)
    {
        await Task.Delay(1000);//遇到await,执行Task.Delay(1000),开辟一个新线程执行之后的代码
        Console.WriteLine("Working...{0}", i);
    }
}

依据以上的代码执行分析,控制台最终只会打印出“Hello World!”。

C#异步学习一

标签:输出   div   size   使用   test   ons   执行   http   i++   

原文地址:http://www.cnblogs.com/DaphneOdera/p/7163637.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!