zoukankan      html  css  js  c++  java
  • 关于async & await(TAP)异步模型的异常捕获

    在TAP之前,若要捕获线程中Task的异常,通常有两种办法:

    1、阻塞:线程开始后,在适当的时机,调用 wait,或waitAll方法。

    2、非阻塞(推荐):在建立任务的时候,写该task的continueWith方法,在该方法中捕获异常。

    对于TAP时代,我们若要捕获一个带有asyn关键字的Task任务,用continueWith方法会捕获失败。注册全局的静态方法也不行。

    阻塞式:和TAP之前一致。

    非阻塞式:用

    await Task.WhenAll()

    await t.Wait()

    await t.result等皆可。

      前提是要有await关键字,这样看似不错,省了continueWith,但是问题是await只允许在asyn标志的函数中去执行,这样会给你的程序带来传染性问题。

    由此可以这样说,await关键字其实和continueWith的作用类似,只是简化了写法,让程序看的更整齐,但这样所付出的代价是不是有点大?

  • 相关阅读:
    date日期格式化
    表单解析模块formidable
    express-session模块
    密码加密模块bcrypt
    后端数据验证模块Joi
    mongoose-sex-page分页模块
    决策树算法及应用
    朴素贝叶斯分类
    实验二 K-邻近
    实验一 感知器及其应用
  • 原文地址:https://www.cnblogs.com/fej121/p/4276251.html
Copyright © 2011-2022 走看看