在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

.NET 并行扩展之模式与范例

  • 2010-05-22
  • 本文字数:685 字

    阅读完需:约 2 分钟

虽然从 2007 年开始微软致力于.NET 的并行扩展,但针对.NET 4.0 的多项功能仍未充分实现。有些内部框架的功能“过于专属”,而其它功能则有利于测试与用户反馈。 Stephen Toub 提到:

所幸的是大部分案例中,我们能够基于.NET 4 提供的并行架构与.NET 4 类型和方法来实现这项功能,并在其它案例中使用.NET 4 提供的扩展功能,让开发人员能清晰地实现独立的自定义功能。久而久之,我们收集了大量的案例,我们选择把 ParallelExtensionsExtras 作为.NET 4 范例的一部分进行公布,大家可从 http://code.msdn.microsoft.com/ParExtSamples 下载。

代码范例涵盖了多种不同的功能。以下列出大家关心的部分功能:

IProducerConsumerCollection 实现了 BlockingCollection 封装。该接口是用于传统厂商与客户解决方案的线程安全集合。它并不包含在.NET 4.0 当中,因为不同应用程序对 BlockingCollection 有不同的需求。

对于处理 COM 组件所需的单线程单元,微软提供了 StaTaskScheduler 。StaTaskScheduler 的入门版本简单易用,它启用若干预定义的 STA 线程并等待处理任务。微软推荐用户使用本地线程存储来给每个工作线程实例化 COM 对象。

对于 Rx Framework 感兴趣的开发人员,可以参考 Task.ToObservable 扩展方法。它可订阅 Task 的结果。如果该订阅在任务完成之前就被丢失,那么该任务也会被取消。

一个相对复杂的解决方案就是 ReductionVariable 。它包含一些值,与实例或线程一一对应,在归约操作中使用。基于本地线程的存储,减少了它在工作线程间同步的比例。归约操作一旦完成,就可以对这些值进行枚举来生成最终结果。

查看英文原文: Patterns and Samples for .NET Parallel Extensions

2010-05-22 05:112172
用户头像

发布了 87 篇内容, 共 25.5 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

网站开发进阶(三十三)中文字符编码问题解决总结

No Silver Bullet

异常 5月月更 中文编码

建木持续集成平台v2.3.1发布

Jianmu

开源 DevOps 自动化 持续集成 gitops

行业案例| MongoDB在腾讯零售优码中的应用

MongoDB中文社区

mongodb

Java中容易混淆的基础知识

工程师日月

java 5月月更

加盟自助洗车需要营业执照吗

共享电单车厂家

自助洗车加盟 加盟自助洗车

Consul的基本使用与集群搭建

神农写代码

用上这个 Mock 神器,让你的开发爽上天!

Liam

前端 前端开发 Postman Mock Mock 服务

疫情时代如何提高办公效率?

小炮

Redis命令HSCAN踩坑指南

Qunar技术沙龙

dba

Hadoop hdfs 的shell操作

Emperor_LawD

hadoop Shell 5月月更

文章插图汇总

武师叔

区块链系统开发,交易所交易平台搭建

Geek_56201b

基调听云研发总监杨金全出席CSDN可观测性与APM峰会

基调听云

云原生 APM 可观测性 基调听云

华创视讯加入龙蜥社区,携手共建开源新生态

OpenAnolis小助手

开源 龙蜥社区 CLA 华创视讯 龙腾计划

从手工测试到自动化测试进阶,需要学什么?结合自身分享我10+年的测试经验!

伤心的辣条

Python 程序人生 软件测试 自动化测试 接口测试

技术干货| MongoDB如何查询Null或不存在的字段?

MongoDB中文社区

mongodb

购买自助洗车机时都要注意哪些

共享电单车厂家

自助洗车机多少钱 自助洗车机价格 自助洗车加盟 购买自助洗车机

开家自助洗车房需要投资多少钱

共享电单车厂家

自助洗车加盟 开自助洗车店多少钱 开家自助洗车房

开发板上新抢先知!居然可以用来跑游戏?

HarmonyOS开发者

开发板 HarmonyOS

一个小操作,SQL查询速度翻了1000倍。

TiDB 社区干货传送门

解决方案| 阿里云数据库MongoDB版助力餐道显著提升运维效率,打造卓越餐饮/零售服务

MongoDB中文社区

mongodb

在基础语法中Java与c++有哪些不同?(对于学过c++转Java必看)

工程师日月

c++ java 5月月更

自助洗车加盟都要注意哪些事项

共享电单车厂家

自助洗车加盟 自助洗车机厂家 自助洗车品牌

gRPC服务开发和接口测试初探【Go】

FunTester

TiKV 缩容不掉如何解决?

TiDB 社区干货传送门

恒源云 (Gpushare)_Restormer:用于高分辨率图像重建的高效Transformer

恒源云

人工智能 深度学习 Transformer

企评家|华润三九医药股份有限公司成长性评价报告摘要

企评家

塔米狗企评家 企业评价 企业成长性分析 企评家 企业投资价值评价

实践GoF的23种设计模式:建造者模式

华为云开发者联盟

Go 设计模式 GoF 建造者模式

网站开发进阶(三十六)String.getBytes()方法中的中文编码问题解决总结

No Silver Bullet

编码 5月月更 getBytes

去哪儿网MySQL日志分析实践,80%数据丢失都给你救回来!

Qunar技术沙龙

dba

从活动能力层建设看业务架构

Qunar技术沙龙

业务架构

.NET并行扩展之模式与范例_.NET_Jonathan Allen_InfoQ精选文章