How to use async with Visual Studio 2010 and .NET

2020-03-13 16:19发布

I want to add async support to current VS 2010 .NET 4.0 C# project

I have found:

I don't even get real difference between them.

I installed both. Visual Studio Async CTP (Version 3), Microsoft.Bcl and Microsoft.Bcl.Async. (also used to run tools\portable-net40+sl4+win8+wp71\install.ps1 in Microsoft.Bcl)

And still can't see any effect. Same error for

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?)

So is it real how should I use this stuff?

2条回答
相关推荐>>
2楼-- · 2020-03-13 16:39

I am working on something similar (I'm writing a RestApiLibrary in VS2010, that I borrowed from a VS2017 project) and found the following URL to be helpful.

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

The main thing that helped was:

        // 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(); 

The 'ContinueWith' method, and the '.Result' property seemed to be key to (sort of using) an async function in VS2010. Note, I doubt this behaves in the traditional async way, but at least this way you can use async methods in VS2010.

Hope this helps!

查看更多
趁早两清
3楼-- · 2020-03-13 16:46

I don't think you should do that. The Visual Studio 2010 version of async/await is more of a preview than anything else. If you want to use this in real, production level code, you should definitely upgrade to Visual Studio 2012 (or 2013, if you can wait a little while).

If you don't need this in real production code that requires Visual Studio Pro for some reason, and are just toying around, you can use Visual Studio 2012 Express.

查看更多
登录 后发表回答