Преобразование проектов в .Net 4.5 (с использованием TPL)

На данный момент владею несколькими проектами с .net 3.5 и .net 4.0.
Было принято решение перевести все на .NET 4.5.

Все проекты уже находятся в VS2012 (C# 5.0), и все проекты используют ключевые слова async-await.

В проектах .net 4.0 используется Microsoft.Bcl.Async
В проектах .net 3.5 используется AsyncBridge.Net35 и TaskParallelLibrary

Проблема в следующем:
- В .net 4.5 нет класса TaskEx и других методов расширения или я не знаю о существовании таких

Как я могу внести это изменение без серьезных изменений в коде?


person J. Lennon    schedule 09.05.2013    source источник
comment
Разве TaskEx не было просто тем, что они использовали в асинхронном предварительном просмотре? Я думаю, что в .NET 4.5 это называется просто Task, и методы должны быть включены в стандартные библиотеки. Или какие другие методы расширения, в частности, вам не хватает?   -  person DeCaf    schedule 09.05.2013


Ответы (2)


В .NET 4.5 методы TaskEx были перемещены в класс Task. Например, вместо await TaskEx.Run(...); вы используете await Task.Run(...);. Вы должны, предполагая, что ваша схема именования ваших собственных классов разумна, иметь возможность выполнять глобальный поиск и замену.

person Community    schedule 09.05.2013

В рамках миграции вы должны изменить свои TaskEx вызовы на Task вызовы.

person Stephen Cleary    schedule 09.05.2013
comment
Мне придется изменить TaskEx.Run на Task.Factory.Start? (Я не хочу этого делать) - person J. Lennon; 09.05.2013
comment
@ J.Lennon Нет, просто Task.Run. - person Servy; 09.05.2013
comment
Кроме того, TaskEx.RunEx становится просто Task.Run. - person Stephen Cleary; 09.05.2013