【发布时间】:2011-05-02 15:18:27
【问题描述】:
我正在开发一个应用程序框架,客户端的 Silverlight 和服务器端的 .NET 4 将使用该框架。在内部,框架具有字典和队列数据结构,其中多个线程将同时访问集合。
在服务器端,我想利用System.Collections.Concurrent 命名空间中的ConcurrentDictionary 和ConcurrentQueue 类。然而,这些类并未在 Silverlight 4 中实现。
我正在考虑的两种方法是:
- 反编译并发字典 和 ConcurrentQueue 类和 在 Silverlight 中实现它们 类库。这些将使用 System.Collections.Concurrent 命名空间来限定范围。
- 实现自定义线程安全 我在共享中需要的集合类 图书馆(或找一个可靠的 Silverlight 线程安全集合 实现),可用于服务器端和客户端。
第一种方法允许我只实现我需要的 Silverlight 数据结构,但我担心会在我的 Silverlight 实现和 .NET 4 中实现的并发集合类之间引入差异。
第二种方法将在客户端和服务器端提供一致的并发收集实现,但感觉就像我在重新发明轮子。
在 Silverlight 中实现 ConcurrentDictionary 和 ConcurrentQueue 类似乎并不困难,但是否已经有一个被广泛采用的 Silverlight 线程安全集合类库?
【问题讨论】:
-
编辑标签,因为这仍然适用于 SL5。
标签: silverlight thread-safety concurrent-collections