Как использовать ключевые слова async в проекте targeting.net 4.0

Я хотел бы использовать ключевые слова async в проекте, созданном в .net 4.0.

Если я перейду на сайт nuget.org, и я ищу «async», у меня много результатов, но в основном я получаю это:

Visual Studio Async CTP (версия 3, неофициальный) 0.3.0

AsyncAwaitCTP 1.0.0

В чем различия между ними?

Вам нужен пакет Microsoft.Bcl.Async . Это правильно выпущенный, не-CTP-пакет, который является стабильным. Это также требует VS2012, поскольку обновленный компилятор необходим для понимания async и await .

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

Я написал плагин .NET 4.5 с использованием async для приложения .NET 4.0, и, к моему удивлению, это действительно сработало!

Я думаю, что это сработало, потому что у меня установлен .NET 4.5, который заменил среду выполнения .NET 4 на обновленную, которая используется как для .NET 4.0, так и для .NET 4.5. Затем мой плагин был загружен reflectionм, используя Assembly.Load(...) или аналогичный. Я попробовал async/await и Environment.CurrentManagedThreadId (свойство .NET 4.5), и оба работали.

  • Является ли async / await подходящим для методов, которые связаны как с IO, так и с CPU?
  • Захваченное закрытие (переменная цикла) в C # 5.0
  • Как Task становится int?
  • Почему я не могу получить исключение из асинхронного кода?
  • Fire-and-forget с async против "old async delegate"
  • Как я могу запустить метод async Task синхронно?
  • Почему это асинхронное действие зависает?
  • Возможно ли «ожидание возврата доходности DoSomethingAsync ()»
  • Обработка исключений Async с void
  • async - остаться в текущей теме?
  • Используют ли новые ключевые слова C # 5.0 «asynchronous» и «ожидающий» несколько ядер?
  • Interesting Posts

    Альтернативы Altaris / Symantec SVS

    OSX / Samba – Как автоматически перемонтировать / снова подключиться к дискам, которые были отключены?

    Как использовать кэширование вывода в обработчике .ashx

    Общая память между двумя JVM

    Работа с ошибкой «java.lang.OutOfMemoryError: PermGen space»

    Как открыть программу электронной почты через Intents (но только программу электронной почты)

    Как получить IP-адрес ПК для WakeOnLan через Интернет (только с использованием приложений Windows 7)

    Извлечение fragmentа из ViewPager

    В чем разница между командами $ (command) и `command` в программировании оболочки?

    Что такое тип связи IEEE 802.3 Ethernet: синхронный или асинхронный?

    Инструкция за цикл против увеличенного количества циклов

    Повернуть поплавок в регулярную сетку предопределенных точек

    Различные CURRENT_TIMESTAMP и SYSDATE в oracleе

    Может ли терминал PowerShell по умолчанию хранить историю команд?

    как добавить супер-привилегии в базу данных mysql?

    Давайте будем гением компьютера.