C# 6.0:在catch和finally中使用await

Asyn方法是一个现在很常用的方法,当使用async和await时,你或许曾有这样的经历,就是你想要在catch块或finally块中使用它们,比如当出现一个exception而你希望将日志记在文件或者调用一个服务将exception信息发送给server,而这些操作可能很耗时。这种情况下,在catch块中的异步方法中使用await将会很有帮助。而这已经被添加到了C# 6.0 中。

在finally块中也一样,我们也可以使用await来调用async 方法。

下面的代码块显示了怎么用它们。

public async Task SubmitDataToServer()
{
    try
    {
        // Submit Data
    }
    catch
    {
        await LogExceptionAsync();
    }
    finally
    {
        await CloseConnectionAsync();
    }
}    

这是一个很普通的在catch块和finally块中使用await的情形,而这个特性将会对开发者带来很大的便利。

时间: 2024-10-10 04:20:38

C# 6.0:在catch和finally中使用await的相关文章

asp.net mvc 3.0 知识点整理 ----- (2).Controller中几种Action返回类型对比

通过学习,我们可以发现,在Controller中提供了很多不同的Action返回类型.那么具体他们是有什么作用呢?它们的用法和区别是什么呢?通过资料书上的介绍和网上资料的查询,这里就来给大家列举和大致的概括下. (1). ActionResult(base):最基本的Action类型,返回其他类型都可以写ActionResult. (2). ContentResult:返回ContentResult用户定义的内容类型. public ActionResult Content() { return

解决 未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载

先安装了 IIS ,再安装了 .net framework4.0 ,这样一来就要在cmd下注册.net framework4.0 步骤 第一步:修改配置文件 %windir%/system32/inetsrv/config/applicationHost <add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.

主攻ASP.NET.4.5.1 MVC5.0之重生:在项目中使用zTree jQuery 树插件

效果图和json格式 Controllers代码 using HR.Models; using HR.Models.Repository; /************************************************************************************ * 命名空间:HR.Controllers * Controller: TreeController * 版本号: F 1.0.0.0 * 负责人: Markfan * 电子邮箱:[ema

C++编译与链接(0)-.h与.cpp中的定义与声明

C++中有的东西需要放在可以在.h文件中定义,有的东西则必须放在.cpp文件中定义,有的东西在不同的cpp文件中的名字可以一样,而有的则不能一样 那么究竟哪些东西可在头文件中定义,声明,哪些东西又必须在.cpp中定义,声明呢? *以下所有的讨论都是在全局命名空间中(即不定义自己的namespace)下进行的 函数 1.在.h中只能声明函数,在.cpp中可以声明与定义函数 如果在.h中声明并定义一个函数,则该函数只能被#include一次,否则则会出现重定义错误 比如 1.h #pragma on

找不到类型{0} 它在 ServiceHost 指令中提供为 Service 特性值

由于我把binding改成wsHttpBinding,在web.config里也改了命名空间 services的类名也改成了跟 web.config对应的命名空间后 在添加引用后,出现了错误: “找不到类型{0} 它在 ServiceHost 指令中提供为 Service 特性值,或在配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 中提供.” 解决方法: 其实很简单,要对services文件的标记文件也做

无法从程序集“c:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Web.dll”中嵌入互操作类型

错误 1 无法从程序集“c:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Web.dll”中嵌入互操作类型,因为该程序集缺少“GuidAttribute”特性 c:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Web.dll AutoInternetDownloadTool 打开引用->找到指定的XXX.dll->右击属性->嵌入互操作类型->false

【转】case: Java中try catch finally语句中含有return语句的执行情况(总结版)

Java中try catch finally语句中含有return语句的执行情况(总结版) 有一点可以肯定,finally块中的内容会先于try中的return语句执行,如果finall语句块中也有return语句的话,那么直接从finally中返回了,这也是不建议在finally中return的原因.下面来看这几种情况. 情况一(try中有return,finally中没有return): [java] view plain copy public class TryTest{ public 

“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类型“System 解决方案

在Windows Server 2008中的IIS服务器中部署WCF服务程序时,通过浏览器访问报出如下错误: 未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类型“System.ServiceModel.Activation.HttpModule”. 原因: 这是因为先安装了 .NET Framework 4,随后启用了 .NET Framework

未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类型“System.ServiceModel.Activation.HttpModule”。

“/”应用程序中的服务器错误. 未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类型“System.ServiceModel.Activation.HttpModule”. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.TypeLoadEx