2012-08-13 43 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