码迷,mamicode.com
首页 > Web开发 > 详细

Net 异步编程

时间:2015-07-29 15:38:11      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

例子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Text;
using System.Threading.Tasks;
using System.Security.Cryptography;
using System.Threading;
using System.Diagnostics;
using System.Threading.Tasks;
using System.Net.Http;

namespace Test
{
    class Program
    {
        public delegate void PrintDelegate(string s);
        static void Main(string[] args)
        {

           AccessTheWebAsync();
           Console.WriteLine("aaaaaa");
           Console.ReadLine();
        }

        public static async Task AccessTheWebAsync()
        {
            // 你需要添加System.Net.Http的引用来声明client
            HttpClient client = new HttpClient();

            // GetStringAsync 返回 Task. 这意味着当Task结束等待之后 
            // 你将得到一个string (urlContents).
            Task<string> getStringTask = client.GetStringAsync("https://www.baidu.com/");
            
          
            // 你可以做一些不依赖于 GetStringAsync 返回值的操作.
            DoIndependentWork();

            // await 操作挂起了当前方法AccessTheWebAsync. 
            //  - AccessTheWebAsync 直到getStringTask完成后才会继续. 
            //  - 同时, 控制权将返回 AccessTheWebAsync 的调用者. 
            //  - 控制权会在getStringTask完成后归还到AccessTheAsync.  
            //  - await操作将取回getStringTask中返回的string结果. 
            string urlContents = await getStringTask;

            Console.WriteLine(urlContents);
            //string content = await client.GetStringAsync("http://www.baidu.com");
            // return语句用来指定一个整数结果。
            // 调用AccessTheWebAsync将会收到一个返回值的长度. 
            //return urlContents.Length;
        }

       static  void DoIndependentWork()
        {
            Console.WriteLine("Work");
        }
    }
}

技术分享

其实一直到await getStringTask的时候才去页面http://www.baidu.com去抓取信息,这个是我抓包获得的结果,以前还以为它在定义的时候就执行的呢,现在想来只是换个线程。

 

 

 

http://www.godoone.com/archives/asynchronous-programming-async-await.html

Net 异步编程

标签:

原文地址:http://www.cnblogs.com/hongdada/p/4685851.html

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