InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Silverlight的任务并行库

作者 Jonathan Allen 译者 李永伦 发布于 2011年8月29日

领域
语言 & 开发
主题
Silverlight ,
.NET ,
RIA ,
并发 ,
编程 ,
任务并行库

Silverlight的异步服务模型迫使开发者从一开始就处理多线程。因此微软选择去掉任务并行库就显得有点奇怪了,毕竟它是.NET多线程基础设施的核心。幸运的是,我们还有其他选择。

如果LGPL 2.0许可证不会为你带来麻烦,你可以使用Mono实现的移植。Robert McLaws和Jrmie“Garuma”Laval已经完成了移植,并把他们的成果发布到NuGet,标题是Task Parallel Library for Silverlight - 2.0。不幸的是,他们还没发布LGPL许可证的副本、源代码或者Mono版权信息的通告。虽然这是可以修正的,但它可能在此时造成一些法律问题。

假设他们将会修正这个疏忽(译注:目前已经修正),你就可以从他们的包里得到下面这些特性:

  • 适用于Silverlight 3和4的实现
  • 适用于Silverlight for Windows Phone 7和7.1的实现
  • 任务并行库本身(System.Threading.Tasks)
  • 并行数据结构(System.Collections.Concurrent)
  • 取消基础设施(如CancellationToken)
  • 并行for循环,但不支持并行LINQ表达式

另一个选择是David Catuhe的PortableTPL。这不是真正的TPL,不过非常简单,原本是为教学而设计的。当然,它确实能够在Silverlight、Windows Phone 7和XBox 360上运行,并且非常大方地采用了Microsoft Public License许可证。它拥有核心TPL特性,比如Task和取消,但缺少并行数据结构。

查看英文原文:Task Parallel Library for Silverlight

译者 李永伦 李永伦,从02年开始关注.NET,读过4年工商管理,任过3届微软MVP,最近迷上Windows Phone和Ruby。

  • 本文所属的特别专题为 RIA
Mono是个大宝库 发表人 Zhao Jeffrey 发表于
Re: Mono是个大宝库 发表人 Sun Peng 发表于
Re: Mono是个大宝库 发表人 Zhao Jeffrey 发表于
silverlight5 RC 发表人 yys yys 发表于
  1. 返回顶部

    Mono是个大宝库

    发表人 Zhao Jeffrey

    愚蠢的.NET程序员才会忽视Mono。

  2. 返回顶部

    Re: Mono是个大宝库

    发表人 Sun Peng

    不要一概而论,你这是扯蛋

  3. 返回顶部

    Re: Mono是个大宝库

    发表人 Zhao Jeffrey

    来来,说个反例出来。

  4. 返回顶部

    silverlight5 RC

    发表人 yys yys

    silverlight5 RC已经内置System.Threading.Tasks了!