在即将发布的.NET 4.6 中,.NET 中的任务并行库将会进行某些调整。其中会包括一些新的帮助方法以减少代码量,可能还会有性能方面的优化。除此之外,TPL 将会通过使用一个新的解决方案对 SetResult 方法中某个复杂的问题进行处理。
可以将 Task.FromResult 视为一个典型样板,这一函数用于创建一个已经完成的 Task 对象,而无需首先创建一个 TaskCompletionSource 对象。开发者无法模拟这一效果,因此这需要访问 Task 类型的内部实现,如果你希望在异常处理时达到同样的效果,以上缺陷就将会成为一个阻碍。
.NET 4.6 通过 Task.FromException 方法解决了这一问题。与 FromResult 类似,它能够绕过 TaskCompletionSource 这一机制的使用,并避免了随之而来的各种消耗。
与之相关的一个特性是 Task.CompletedTask 属性,该属性会返回一个完成的 Task 对象,而在目前的版本中只能通过 Task.FromResult
更多内容推荐
.NET 4.5.1 比看上去更丰富
当微软宣布.NET Framework 4.5.1版本的存在时,基本上可以假定这只是一次很小的更新。不过这个假定是错的,因为这次更新会为.NET带来性能提升、丰富的调试工具和更高的生产力。
Silverlight 的多线程能力(上)
对于多线程其实一直以来都存在很多误区:比如多任务与多线程就很容易被混为一谈,而多线程也常被理所应当的认为是并行等等。而事实却是:多任务≠多线程、单任务≠单线程、多线程不一定并行,多线程与性能不成线性关系等等,其中道理在这里不再详述。这次我们就要来看看Silverlight的多线程能力
thread 和 future:领略异步中的未来
这一讲要介绍的一些对象的使用已经可以初步展现并发编程的困难,但更麻烦的事情还在后头呢……
2020-01-08
.NET 4.5 任务并行库改动与指南
在.NET4.5中,Task类的使用方式发生了细微又重大的改变。
未来的 C#之覆写放宽
能使用协变(covariant)返回类型,这是一个在.NET中常被请求到的特性。例如,可以使用“override Widget Clone()”覆写“virtual object Clone()”。从类型安全的角度看,这种做法完全可以接受,但是当前并不被C#所允许。
.NET 4.0 Beta 2 对协调数据结构类库进行了改进
协调数据结构(Coordination Data Structures,CDS)被设计为在并发环境下使用的组件,它也可用于构建复杂的并发框架。此外,它还包含了高级的同步工具,如Barrier,多种线程安全的集合,以及多种构建Future模型的方式。
是否每个.NET 中的集合类型都应该实现所有.NET 类型接口?
是否每个.NET中的集合类型都应该实现所有.NET类型接口?在1月14日进行的.NET核心API审查视频中,这一问题在API相关的重要问题中居首位。这段视频录制了针对.NET基础类库的十个变更请求的相关讨论。
使用 Task、Continuation 和 Future 来代替 ThreadPool
.NET 4增加了对Task的支持。Task是轻量的工作单元,它类似于线程队列中的工作项,不过它还支持Wait、Continuation和Future等功能。Task支持“父子”关系,并通过这种关系自动进行等待或取消。
ConcurrentDictionary:.NET 4.0 中新的线程安全的哈希表
ConcurrentDictionary是.NET 4.0中在并行和并发编程方面显著增强的基石。尽管它和我们过去所看到的有极大的改善,但是它并非是万金油,而且开发者需要仔细地学习它的语义。
第 17 讲 | 一个线程两次调用 start() 方法会出现什么情况?
今天我们来深入聊聊线程,相信大家对于线程这个概念都不陌生,它是Java并发的基础元素,理解、操纵、诊断线程是Java工程师的必修课。
2018-06-14
.NET 4.5 对 Base Class Library 做出改善
Base Class Library是.NET开发平台的核心。 不管你使用了何种配置或者前端技术,都会在应用程序中找到使用BCL的地方。 这次,我们看到了在流、集合和改善的弱引用方面的提升。
.NET 4.0 Beta 1 将为 PLINQ 带来些什么?
Ed Essey,微软并行计算团队的程序经理,记述了一些针对PLINQ的最新增强功能,很快要发布的.NET 4.0 Beta 1将会包含这些功能。他们涉及到:“With"运算符模式(Operators Pattern)、执行模式( Execution Mode)、取消操作(Cancellation)、部分代码的重构、性能提升。
函数式编程与协调数据结构
协调数据结构(Coordination Data Structures,CDS)是在.NET 4.0中包含的一套线程安全对象,其中大部分是集合类型。在沉寂了6个月之后,这些内容终于有了重大的更新。其中最明显的部分莫过于引入了函数式编程技术,从而减少了设计模式的使用。
JavaScript 执行(一):Promise 里的代码为什么比 setTimeout 先执行?
当拿到一段JavaScript代码时,浏览器首先要做的就是;传递给JavaScript引擎,并且要求它去执行。
2019-02-23
构建更好的线程安全集合
Jared Parsons设计了一种更好的线程安全集合,它的API非常易于使用和理解,这是因为Jared采用了一种鼓励,但不强制线程安全的设计模式。
Python 编译器(三):运行时机制
今天我们来讨论Python的运行时机制,你会了解到Python字节码是如何运行的,它的类型体系是如何设计的,等等问题。
2020-07-15
打通前端与原生的桥梁:JavaScriptCore 能干哪些事情?
总结来说,JavaScriptCore 提供了前端与原生相互调用的接口。
2019-06-11
怎样构建底层的发布和订阅事件总线?
在今天这篇文章中,我和你分享了事件总线是什么,以及事件总线解决了什么样的问题。
2019-05-07
暂无签名
推荐阅读
简化 C#的不可变对象图
PDC 09:并行和异步编程中的挑战及 F#的应对方案
设计模式模块热点问题答疑
2019-05-23
Lock 和 Condition(上):隐藏在并发包中的管程
2019-03-30
Reactive Extensions for .NET 4.5
线程本地存储模式:没有共享,就没有伤害
2019-05-07
NUnit 2.5 版本发布
电子书
大厂实战PPT下载
换一换 高会军 | 小红书 基础架构部云原生负责人
陈成 | 蚂蚁集团 高级前端技术专家
陈剑光 | 阿里巴巴 无线开发专家
评论