async异步和await关键字是.NET 4.5新增加的异步编程方式通过使用这两个关键字可以轻松便捷的编写异步方法。使用async异步关键字声明异步方法使用await关键字等待和获取异步方法返回的结果。需要注意的是一旦声明了await关键字,将会阻止当前线程直到异步调用返回结果()
下面的是使用控制台编写的简单测试代码:
代码Φ由于使用async异步定义了ShowInfoasync异步方法,所以ShowInfoasync异步就变成一个异步调用的方法需要注意的是声明了async异步关键字的方法中一定要使用await关键字声明異步操作的返回结果,否则方法将作为同步方法执行就不是异步执行了。可以看到代码中await声明的对象是Task<string>这个类Task<TResult> 类表示一个可以返回值嘚异步操作,所以代码中GetDataasync异步也必须是一个异步方法而且返回值必须是Task类型或者Task<TResult>。
关于使用这两个关键字官方说明如下:
- 按照约定异步方法的名称以“async异步”后缀结尾。
- 返回类型为下列类型之一:
- 如果你的方法有操作数为 TResult 类型的返回语句则为 。
- 如果你的方法没有返回語句或具有没有操作数的返回语句则为 。
- 如果你编写的是异步事件处理程序则为 Void(Visual Basic 中为 Sub)。
- 有关详细信息请参见本主题后面的“返囙类型和参数”()。
- 方法通常包含至少一个 await 表达式该表达式标记一个点,在该点上直到等待的异步操作完成方法才能继续。 同时將方法挂起,并且控件返回到方法的调用方 本主题的下一节将解释悬挂点发生的情况。
这里附上官方MSDN的链接: