2012-08-13 40 views
3

我有几个在应用程序之间共享的c#类库。我想创建一个Windows 8风格的应用程序,但它只支持Windows 8类库或portable class libraries。 决定采用后者,除了异步操作外,我没有太多的困难移植所有东西。在便携类中实现基于事件的异步模式

目前我的类库实现Event-based Asynchronous pattern

从这个例子中的便携式库似乎并不支持System.Componenent.AsyncOperation/AsyncOperationManagerSystem.Collections.Specialized.HybridDictionary

我的两个问题是:

1)什么是一个很好的收集利用,而不是HybridDictionary

2)我怎样才能解决缺乏AsyncOperation/AsyncOperationManager?我是否需要实施完全不同的模式?

更新:在VS 2012中,我的便携式类库面向的目标是 “.net framework 4及更高版本”,“Silverlight 4及更高版本”,“windows phone 7及更高版本”,“.net for metro style apps”。

回答

1

1)您在HybridDictionary中使用了多少个元素?如果在10以下),只需使用列表<T>。否则,使用字典<键,TValue >。

2)我一直在http://pclcontrib.codeplex.com/了AsyncOperation/AsyncOperationManager和BackgroundWorker的一个便携版本了。目前还没有二进制文件,但只需浏览源代码的Portable.ComponentModel.Async项目即可。

+0

谢谢。漂亮的便携版本。耻辱,你必须付出努力,MS没有。 – Oli 2012-08-17 14:24:12

+0

谢谢。我为微软工作,所以微软实际上是这么做的。 :) HybridDictionary和AsyncOperation不可用的原因是因为它们被认为是遗留问题,而我们不希望将其推广到更新的平台。 – 2012-09-12 21:30:05