Как использовать ключевые слова async в проекте targeting.net 4.0
Я хотел бы использовать ключевые слова async в проекте, созданном в .net 4.0.
Если я перейду на сайт nuget.org, и я ищу «async», у меня много результатов, но в основном я получаю это:
Visual Studio Async CTP (версия 3, неофициальный) 0.3.0
- Использует ли использование async / wait новый stream?
- Лучший способ конвертировать метод async на основе обратного вызова в ожидаемую задачу
- Вам нужно поставить Task.Run в метод, чтобы сделать его асинхронным?
- Ожидание в блоке catch
- Разница между TPL и async / await (Обработка streamов)
AsyncAwaitCTP 1.0.0
В чем различия между ними?
- вызывать метод асинхронного вызова без ожидания # 2
- Использование async-ожидания в .net 4
- Какая новая функция ожидания C #?
- Есть ли asynchronous эквивалент Process.Start?
- Request.Content.ReadAsMultipartAsync никогда не возвращается
- async в консольном приложении на C #?
- Изменено ли использование foreach переменных в C # 5?
- Использование async / ожидание нескольких задач
Вам нужен пакет 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), и оба работали.