仓酷云

标题: ASP.NET编程:.Net 4.5 异步编程初试(async和await) [打印本页]

作者: 冷月葬花魂    时间: 2015-1-16 22:17
标题: ASP.NET编程:.Net 4.5 异步编程初试(async和await)
说句实话,Java跨平台根本就不是外行人想想的那种,一次编译,处处运行。 比来本人在研讨Asp.NetWebAPI。在看到经由过程客户端来挪用WebAPI的时分,看到了个中的异步编程,因为本人之前没有打仗过,以是就略微的进修懂得一下。这两篇文章是:
CallingaWebAPIFroma.NETClient(C#)http://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from-a-net-client
CallingaWebAPIFromaWPFApplication(C#)http://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from-a-wpf-application
关于异步编程的复杂了解:
在.NET4.5中新增了异步编程的新特征async和await,使得异步编程更加复杂。经由过程特征能够将这项庞大的事情交给编译器来完成了。之前传统的体例来完成异步编程较为庞大,如许关于程序猿来讲处置起来对照坚苦,调试也没那末便利,后续的保护事情也对照疾苦。
Async和Await关头字是C#异步编程的中心。经由过程利用这两个关头字,你可使用.NETFramework或WindowsRuntime的资本创立一个异步办法好像创立一个同步办法一样简单。
这里另有两篇是我之前对多线程复杂进修的进门
http://www.ckuyun.com/aehyok/archive/2013/05/02/3054615.html
 http://www.ckuyun.com/aehyok/archive/2013/05/02/3055524.html
  接上去经由过程VS2013创立一个基于.NET4.5的把持台使用程序举行实验。
复杂示例
先间接把复杂的代码贴出来,以下所示
  1. ///<summary>///同步办法打印HelloWorld///</summary>publicstaticvoidPrintHelloWorld(){Console.WriteLine("同步办法挪用入手下手");Console.WriteLine("同步办法:HelloWorld");Thread.Sleep(1000);Console.WriteLine("加入同步办法");}///<summary>///异步办法打印HelloWorld///</summary>publicasyncstaticvoidAsyncPrintHelloWorld(){Console.WriteLine("异步办法挪用入手下手");Console.WriteLine("异步办法:HelloWorld");awaitTask.Delay(1000);Console.WriteLine("加入异步办法");}
复制代码
下面正文中也有举行申明,第一个是同步办法,第二个是异步办法。同步办法能够经由过程Thread.Sleep(1000);停息办法实行1000ms,一样的异步办法能够经由过程awaitTask.Delay(1000)来处置,并且在异步办法的声明中要到场async的关头字。
接上去是复杂的挪用
  1. staticvoidMain(string[]args){Console.WriteLine("======同步办法挪用=====");PrintHelloWorld();Console.WriteLine("同步办法挪用停止");Console.WriteLine("======异步办法挪用=====");AsyncPrintHelloWorld();Console.WriteLine("异步办法挪用停止");Console.ReadLine();}
复制代码
F5实行后了局以下
ASP.NET编程:.Net 4.5 异步编程初试(async和await)
登录/注册后可看大图

经由过程实行了局能够很分明的看出,挪用的同步办法内里是按次实行的,而在异步办法中纷歧样,当经由过程Task.Delay(1000)停息以后办法的时分,其办法表面的上面的办法会持续实行,也就是打印“异步办法挪用停止”的语句。
能够发明利用了关头字以后,同步与异步的语法不同很小。跟着.NET4.5的推出,很多类库和已有类库都将撑持这类新型的异步语法,好比我正在进修的HTTPClient等等。
经由过程运转实在和同步的是一样的,只不外看看怎样来界说异步办法的前往值,依据Task<T>来举行界说。
总结
1.一个异步办法的声明中一定包括一个async的润色符。
2.异步办法的办法名能够以“Async”开头。
3.Task<TResult>当你的办法有前往值时,那末TResult即前往值的范例
4.办法一般最少包括一个await表达式。
关于async和await的进修临时就这么多,外相的外相,不外临时已充足了,等偶然间了能够再深切的举行研讨。
有个问题想请教你一下,呵呵:)你觉得将来学什么方向比较好,我真是想不出来,知道的太少了,麻烦了。
作者: 第二个灵魂    时间: 2015-1-19 06:49
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
作者: 谁可相欹    时间: 2015-1-25 12:38
众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
作者: 金色的骷髅    时间: 2015-2-2 22:07
现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。
作者: 仓酷云    时间: 2015-2-8 11:48
使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
作者: 因胸联盟    时间: 2015-2-25 11:07
我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。
作者: 小魔女    时间: 2015-3-7 20:59
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
作者: 老尸    时间: 2015-3-15 14:13
平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
作者: 再见西城    时间: 2015-3-22 02:07
JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2