Как использовать async с Visual Studio 2010 and.NET 4.0?

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

Я нашел:

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

Я установил обе. Visual Studio Async CTP (версия 3), Microsoft.Bcl и Microsoft.Bcl.Асинхронный. (также используется для запуска toolsportable-net40+sl4+win8+wp71install.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 ответов


Я не думаю, что вы должны сделать это. Версия Visual Studio 2010 async / await-это скорее предварительный просмотр, чем что-либо еще. Если вы хотите использовать это в реальном коде производственного уровня, вам обязательно нужно перейти на 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.

надеюсь, что это помогает!