在 SignalR 集线器中,我有这个:
public class MyHub : Hub
{
public override Task OnConnected()
{
// my async code here
return base.OnConnected();
}
}
我想执行异步代码。所以我添加了这样的
async
关键字:public class MyHub : Hub
{
public override async Task OnConnected()
{
var result = await MyAsyncMethod();
return base.OnConnected();
}
}
但
return base.OnConnected();
显示此错误:我该如何解决?谢谢。
最佳答案
async
方法由编译器转换为状态机。这里不能return
那个Task
,因为返回的Task
是编译器生成的,代表了这个方法的延续。
只需 await
base
调用:
public override async Task OnConnected()
{
var result = await MyAsyncMethod();
await base.OnConnected();
}
关于c# - 如何在返回任务的方法中调用异步方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45974391/