写点什么

.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:112115
用户头像

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

关注

评论

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

Spark合并Iceberg小文件内存溢出问题定位和解决方案

漫长的白日梦

spark iceberg 小文件

虎年就要玩虎符 春节就要瓜分虎符虎年大礼包

区块链前沿News

Hoo虎符 Hoo 虎年 春节活动

(1-24/24)awesome「结构」

mtfelix

300天创作 2022Y300P

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

Jianmu

DevOps 持续集成 CI/CD

架构训练营 week8 作业

红莲疾风

「架构实战营」

Microchip发布具有强大编程和调试功能的新型在线仿真器(ICE)

极客天地

第六节:SpingBoot基本配置一

入门小站

springboot java

Go 语言快速入门指南:Go 实现简易Web应用

宇宙之一粟

Go web服务器 Go 语言 1月月更

快递,菜鸟驿站,直播购物:老年人的电商之墙

脑极体

电商系统微服务化

皓月

「架构实战营」

ReactNative进阶(四十一):应用 FlatList 实现分组列表

No Silver Bullet

1月月更 ReactNative FlatList

openLooKeng算子接口和执行流程

LooK

openLooKeng助力中移在线获“ICT优秀案例”

LooK

【笔记】学《郭东白的架构课》:访谈|对话于冰(上)

术子米德

架构师成长笔记

如何系统分析项目的干系人?

石云升

项目管理 1月月更

ReactNative进阶(四十):应用 ListView 实现分组列表

No Silver Bullet

ListView React Native 1月月更

模块六作业

黄秀明

「架构实战营」

Hoo虎符研究院 | 币圈后浪 BreederDAO区块链游戏的NFT工厂

区块链前沿News

虎符 Hoo 虎符交易所

再见,Microsoft Academic——你好,开放式研究基础设施?

吴脑的键客

搜索引擎

在线时间戳计算时间差

入门小站

工具

【笔记】学《郭东白的架构课》:访谈|对话于冰(中)

术子米德

架构师成长笔记

【笔记】学《郭东白的架构课》:访谈|对话于冰(下)

术子米德

架构师成长笔记

双龙贺岁,龙蜥 LoongArch GA 版正式发布

OpenAnolis小助手

Linux 开源 新年

拆分电商系统为微服务

tony

并发不是并行

en

LabVIEW播放提示声音或者音乐

不脱发的程序猿

LabVIEW 播放提示声音或者音乐

模块六 - 电商系统微服务设计

圈圈gor

架构实战营 「架构实战营」

ReactNative进阶(四十二):面试必备:2022 ReactNative 经典面试题总结(含答案)

No Silver Bullet

面试题 1月月更 ReactNative

如何写好一个Java方法?

蜜糖的代码注释

Java 后端开发 写好代码

使用Cloud Application Programming模型开发OData的一个实际例子

汪子熙

API abap Cloud Studio 1月月更

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