Hop*_*ppe 0 c# asynchronous async-await c#-5.0 asp.net-web-api
我有一个Web API控制器.它调用一个返回IAsyncResult的方法.当我调用控制器时,我收到错误
在异步操作仍处于挂起状态时完成异步模块或处理程序.
如何让控制器等待asyncresult?
我打算使用await,但我可能还没有弄清楚这个用例的语法.
我还没有找到关于SO的现有答案.
我正在使用c#4.5
[HttpGet]
[Route("GetGridDataAsync")]
public string GetGridDataAsync()
{
var proxy = new Proxy();
return proxy.BeginGetDataAsync("test", ar => proxy.EndGetDataAsync(ar));
}
public IAsyncResult BeginGetDataAsync(string r, AsyncCallback callback){}
public DataResponse[] EndGetDataAsync(IAsyncResult asyncResult){}
Run Code Online (Sandbox Code Playgroud)
你可以让你的方法异步Task<string>,创建一个Task基础上,Async在方法Proxy类和await那个
例:
public async Task<string> GetGridDataAsync()
{
var proxy = new Proxy();
return await Task.Factory.FromAsync(proxy.BeginGetDataAsync, proxy.EndGetDataAsync, "test", null);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1149 次 |
| 最近记录: |