2012-01-16 84 views
2

我的問題很簡單。沉重的谷歌搜索後,我瞭解到,我可以用無擴展,並從其安裝目錄System.Threading.dll版本使用ConcurrentDictionary.NET 3.5項目。首先沒有System.Threading.dll,在Reactive Extensions .NET 3.5子目錄中只有System.Reactive.Windows.Threading。 添加引用System.Reactive或System.Reactive.Windows.Threading或從提到的.NET 3.5中的任何其他的不給我ConcurrentDictionary類,它也給我System.Collections.Concurrent命名空間。我已經下載了Reactive Extensions SDK的老版本,我發現了我一直在尋找的內容,但是我的問題是:有人知道在Reactive Extensions的實際版本中發生的ConcurrentDictionary backport是怎麼回事,有人知道它在哪裏或爲什麼不見了。我無法找到合理的答案或任何答案。什麼是ConcurrentDictionary in Reactive Extensions .NET 3.5

+0

這可能是你有幫助:爲什麼會System.Threading.dll從Windows \大會上失蹤了?] [1] [1]:http://stackoverflow.com/questions/ 3405662/why-might-system-threading-dll-missing-from-windows-assembly – 2012-01-16 13:28:56

+0

是的,我看過這篇文章。在我的情況下,一切都很好,我添加了正確的Rx版本的DLL,它是可見的參考列表。然而,即使我在Reactive Extensions上使用反編譯器,所有的DLL都沒有ConcurrentDictionary的標誌,我的意思是在實際版本中,舊版本很好,但我想知道發生了什麼,爲什麼我不得不使用舊版本的Rx? – Tobiasz 2012-01-16 13:36:04

+1

RX擴展團隊沒有給出併發數據結構被刪除的原因。看到這裏(如果你還沒有):http://social.msdn.microsoft.com/Forums/en-US/rx/thread/527002a3-18af-4eda-8e35-760ca0006b98#11b85c5b-f966-4b2a-9a94 -b5d1c41394b7。我想你需要直接詢問球隊才能知道。我懷疑它只與在NET 4.0,Silverlight 4和Windows Phone 7上正式支持的RX擴展有關。 – 2012-01-16 14:06:58

回答

8

我們不再使用Rx for .NET 3.5發佈TPL的backport。如果您想在併發領域使用TPL和相關的創新技術,請開始使用.NET 4(或更高版本)。 Rx本身並不需要TPL功能,因此我們沒有強烈需要攜帶TPL。

保持這樣一個backport存活相關的支持性,維護和質量方面的複雜性太多。例如,舊版CLR版本的TPL的性能特徵從未經過多年前的TPL最初的CTP測試。

+0

非常感謝您提供詳細且有效的答案。 – Tobiasz 2012-01-18 10:24:27

+0

http://www.nuget.org/packages/TaskParallelLibrary – JasonPlutext 2014-02-28 01:27:11

相關問題