ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码

aspnet 初探aspnet异步编程(1/2)

来源:网络整理     时间:2016-06-24     关键词:aspnet

本篇文章主要介绍了"aspnet 初探aspnet异步编程",主要涉及到aspnet方面的内容,对于.NETjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下: 终于毕业了,也顺利进入一家期望的旅游互联网公司。27号入职。放肆了一个多月没写代码,好方啊。写在前面(带着问题学习)一.根据代码和执行结果,初探异步...

      终于毕业了,也顺利进入一家期望的旅游互联网公司。27号入职。放肆了一个多月没写代码,好方啊。

写在前面(带着问题学习)

一.根据代码和执行结果,初探异步编程的执行过程。

*问题1:await会让当前线程一直等待吗?

*问题2:等待await数据返回交给等待线程再继续向下执行吗?

*问题3:向await下一条语句执行的线程,是执行await的线程吗?

二.异步编程async,await的使用意义和适用场景。

*问题1:异步编程可以让程序变快吗?

*问题2:异步编程执行耗时计算有用吗?

*问题3:既然异步编程执行顺序和同步相同,那么其意义何在?

解惑一(初步结果)

测试代码

class Program
    {
        staticvoid Main(string[] args)
        {
            FirsTask();
            Console.ReadLine();
        }
        publicstaticasync Task<string> FirsTask()
        {
            Console.WriteLine("1.当前线程是:" + Thread.CurrentThread.ManagedThreadId);
            var result = await SecondTask();
            Console.WriteLine("6.当前线程是:" + Thread.CurrentThread.ManagedThreadId);
            return result;
        }
        publicstaticasync Task<string> SecondTask()
        {
            using (var client = new HttpClient())
            {
                Console.WriteLine("2.当前线程是:" + Thread.CurrentThread.ManagedThreadId);
                var result = await client.GetAsync(
                    "http://stackoverflow.com/questions/37991851/jenkins-configure-page-not-loading-version1-651-3-chrome-browser");
                await ThirdTask();
                Console.WriteLine("5.当前线程是:" + Thread.CurrentThread.ManagedThreadId);
                returnawait result.Content.ReadAsStringAsync();
            }
        }
        publicstaticasync Task<string> ThirdTask()
        {
            using (var client = new HttpClient())
            {
                Console.WriteLine("3.当前线程是:" + Thread.CurrentThread.ManagedThreadId);
                var result = await client.GetAsync(
                    "http://stackoverflow.com/questions/37993657/managing-outgoing-calls-settings-in-skype-for-business-client-using-remote-power");
                Console.WriteLine("4.当前线程是:" + Thread.CurrentThread.ManagedThreadId);
                returnawait result.Content.ReadAsStringAsync();
            }
        }
    }

输出结果

aspnet相关图片

aspnet相关文章