Где ConcurrentDictionary в реактивных расширениях .NET 3.5

Мои вопросы просты. После тщательного поиска в Google я узнал, что могу использовать ConcurrentDictionary в проектах .NET 3.5, используя Reactive Extensions и System.Threading.dll< /strong> версию из каталога установки. Прежде всего нет System.Threading.dll, есть только System.Reactive.Windows.Threading в подкаталоге Reactive Extensions .NET 3.5. Добавление ссылки на System.Reactive или System.Reactive.Windows.Threading или на любую другую из упомянутой .NET 3.5 не дает мне ни класса ConcurrentDictionary, ни пространства имен System.Collections.Concurrent. Я загрузил более старую версию Reactive Extensions SDK, и я нашел то, что искал, но мой вопрос: кто-нибудь знает, что случилось с бэкпортом ConcurrentDictionary в фактическом выпуске Reactive Extensions, кто-нибудь знает, где он или почему он отсутствует . Я не смог найти разумный ответ или вообще какой-либо ответ.


person Tobiasz    schedule 16.01.2012    source источник
comment
Это может быть вам полезно: [Почему System.Threading.dll может отсутствовать в Windows\Assembly?][1] [1]: stackoverflow.com/questions/3405662/   -  person Ɖiamond ǤeezeƦ    schedule 16.01.2012
comment
Да, я видел этот пост. В моем случае все в порядке, я добавляю правильную Rx-версию dll, и она видна в списке ссылок. Однако, даже если я использую декомпилятор для всех dll из Reactive Extensions, нет никаких признаков ConcurrentDictionary, я имею в виду, что в реальной версии старая версия в порядке, но я хочу знать, что произошло, почему я вынужден использовать более старую версию Rx?   -  person Tobiasz    schedule 16.01.2012
comment
Команда RX Extensions не указала причину, по которой параллельные структуры данных были удалены. См. здесь (если вы еще этого не сделали): social.msdn.microsoft.com/Forums/en-US/rx/thread/. Я думаю, вам нужно спросить команду напрямую, чтобы узнать. Я подозреваю, что это связано с тем, что расширения RX официально поддерживаются только в NET 4.0, Silverlight 4 и Windows Phone 7.   -  person Ɖiamond ǤeezeƦ    schedule 16.01.2012
comment
Спасибо, Ɖiamond ǤeezeƦ, это проясняет ситуацию :)   -  person Tobiasz    schedule 17.01.2012
comment
Привет, я ищу выпуск, в котором это поддерживалось .. вы можете помочь?   -  person MikeW    schedule 31.08.2012


Ответы (1)


Мы больше не поставляем резервную копию TPL с Rx для .NET 3.5. Если вы хотите использовать TPL и связанные с ним инновации в области параллелизма, начните использовать .NET 4 (или выше). Сам по себе Rx не нуждается в функциональности TPL, поэтому у нас не было сильной необходимости носить с собой TPL.

Слишком много сложностей в отношении возможности поддержки, обслуживания и качества, связанных с поддержанием работоспособности такого бэкпорта. Например, характеристики производительности TPL в более старых версиях CLR никогда не проверялись, кроме начальной CTP TPL несколько лет назад.

person Bart De Smet    schedule 18.01.2012
comment
Большое спасибо за подробный и компетентный ответ. - person Tobiasz; 18.01.2012