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();
}
答
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")
}
只要不使用VS 2010年。它不只是IDE。它*不能*支持引入'async/await'支持的新的.NET运行时和C#编译器。 VS 2017的社区版*免费*,与VS 2010专业版相同或更好。 *为什么*不使用受支持的Visual Studio版本? –
在*的Visual Studio的较新版本的*您可以使用[Microsoft.Bcl.Async(https://www.nuget.org/packages/Microsoft.Bcl.Async/)从包装到的NuGet加上'异步/ await'支持.NET 4.0项目。它不支持VS 2010,虽然 –
我已经改变了线var result1 = await httpClient.GetStringAsync(“URL”); var result1 = httpClient.GetStringAsync(“URL”)。它工作正常..但仍然存在后方法调用。 – Vengat