本篇文章主要介绍了"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();
}
}
}
输出结果