C#异步Task

笔记整理(原资源网址): https://www.bilibili.com/video/BV1Zf4y117fs?p=12TaskThread 的问题线程(Thread)是用来创建并发(concurrent)的一种低级别工具,它有一些限制,尤其是:虽然开始线程的时候可以方便的传入数据,但是当 Join 的时候,很难从线程获得返回值。可能需要设置一些共享字段。如果操作抛出异常,捕获和传播该异常都很麻烦。无法告诉线程在结束时开始做另外的工作,你必须进行 Join 操作(在进程中阻塞当前的
摘要由CSDN通过智能技术生成

笔记整理(原资源网址): https://www.bilibili.com/video/BV1Zf4y117fs?p=12

Task

Thread 的问题

线程(Thread)是用来创建并发(concurrent)的一种低级别工具,它有一些限制,尤其是:

  1. 虽然开始线程的时候可以方便的传入数据,但是当 Join 的时候,很难从线程获得返回值。

    可能需要设置一些共享字段。

    如果操作抛出异常,捕获和传播该异常都很麻烦。

  2. 无法告诉线程在结束时开始做另外的工作,你必须进行 Join 操作(在进程中阻塞当前的线程)

很难使用较小的并发来组建大型的并发,导致了对手动同步的更大依赖以及随之而来的问题

Task 类

Task 类可以很好的解决上述问题

Task 是一个相对高级的抽象:它代表了一个并发操作(concurrent)

​ 该操作可能由 Thread 支持,或不由 Thread 支持

Task 是可组合的(可使用 Continuation 把它们串成链)

​ Task 可以使用线程池来减少启动延迟

​ 使用 TaskCompletionSource,Task 可以利用回调的方式,在等待 I/O-bound 操作时完全避免使用线程。

Ta

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值