Visual Studio 2010的异步编程

问题描述:

我跑在VS2010下面的代码,但我已经遇到像Visual Studio 2010的异步编程

id = 1, status = waitingforactivation, method = "{null}", result = "{not yet computed}" 

那么问题我搜索,发现,需要使异步和VS2010等待。 然后通过使用AsyncCtpLibrary DLL参考,我已启用它。但仍然vs2010不会返回响应。

我在VS2012中得到了回应,但我需要在VS2010中开发的项目中实现该项目。

static void Main(string[] args) 
{ 
Task<string> task = GetCustomerDetails(); //PushCustomerDetails(); 
task.Wait(); 
var x = task.Result; 
} 

static async Task<string> GetCustomerDetails() 
{ 
    var httpClientHandler = new HttpClientHandler() 
    { 
     Credentials=new NetworkCredential("demo","demo"), 
    }; 

    var httpClient = new HttpClient(httpClientHandler); 
    httpClient.DefaultRequestHeaders.Accept.Clear(); 
    httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
    var result1 = await httpClient.GetStringAsync("URL") 
    return result1.ToString(); 
} 
+2

只要不使用VS 2010年。它不只是IDE。它*不能*支持引入'async/await'支持的新的.NET运行时和C#编译器。 VS 2017的社区版*免费*,与VS 2010专业版相同或更好。 *为什么*不使用受支持的Visual Studio版本? –

+0

在*的Visual Studio的较新版本的*您可以使用[Microsoft.Bcl.Async(https://www.nuget.org/packages/Microsoft.Bcl.Async/)从包装到的NuGet加上'异步/ await'支持.NET 4.0项目。它不支持VS 2010,虽然 –

+0

我已经改变了线var result1 = await httpClient.GetStringAsync(“URL”); var result1 = httpClient.GetStringAsync(“URL”)。它工作正常..但仍然存在后方法调用。 – Vengat

static void Main(string[] args) 
{ 
    Task<string> task = GetCustomerDetails(); //PushCustomerDetails(); 
    var x = task.Result; //Result is already waiting 
} 

static Task<string> GetCustomerDetails() 
{ 
    var httpClientHandler = new HttpClientHandler() 
    { 
     Credentials=new NetworkCredential("demo","demo"), 
    }; 

    var httpClient = new HttpClient(httpClientHandler); 
    httpClient.DefaultRequestHeaders.Accept.Clear(); 

    httpClient.DefaultRequestHeaders.Accept.Add(new  
MediaTypeWithQualityHeaderValue("application/json")); 
    return httpClient.GetStringAsync("URL") 
}