Как использовать асинхронные с Visual Studio 2010 и.NET 4.0?

Я хочу добавить асинхронную поддержку в текущий проект VS 2010 .NET 4.0 C#

Я нашел:

Я даже не понимаю реальной разницы между ними.

Я установил оба. Visual Studio Async CTP (версия 3), Microsoft.Bcl и Microsoft.Bcl.Async. (также используется для запуска tools\portable-net40+sl4+win8+wp71\install.ps1 в Microsoft.Bcl)

И до сих пор не вижу никакого эффекта. Та же ошибка для

public async Task<CommResponse>

->

Error   37  The type or namespace name 'async' could not be found (are you missing a using directive or an assembly reference?)

Так реально ли, как мне использовать этот материал?

2 ответа

Решение

Я не думаю, что вы должны это делать. Версия async/await для Visual Studio 2010 - это скорее предварительный просмотр, чем все остальное. Если вы хотите использовать этот код в реальном, производственном уровне, вам определенно следует перейти на Visual Studio 2012 (или 2013, если вы можете немного подождать).

Если вам не нужно это в реальном производственном коде, который по какой-то причине требует Visual Studio Pro, и вы просто играете, вы можете использовать Visual Studio 2012 Express.

Я работаю над чем-то похожим (я пишу RestApiLibrary в VS2010, который я позаимствовал из проекта VS2017) и нашел следующий URL полезным.

https://code.msdn.microsoft.com/Introduction-to-HttpClient-4a2d9cee

Главное, что помогло было:

        // Send a request asynchronously continue when complete 
        client.GetAsync(_address).ContinueWith( 
            (requestTask) => 
            { 
                // Get HTTP response from completed task. 
                HttpResponseMessage response = requestTask.Result; 

                // Check that response was successful or throw exception 
                response.EnsureSuccessStatusCode(); 

Метод ContinueWith и свойство.Result, казалось, были ключом (своего рода использованием) асинхронной функции в VS2010. Обратите внимание, я сомневаюсь, что это ведет себя традиционным асинхронным способом, но по крайней мере таким образом вы можете использовать асинхронные методы в VS2010.

Надеюсь это поможет!

Другие вопросы по тегам