SB2*_*055 3 .net c# asynchronous signalr
我有以下内容:
public override Task OnConnected() {
HandleConnectionAsync(Context).Wait();
return base.OnConnected();
}
Run Code Online (Sandbox Code Playgroud)
在遵循“不阻止集线器方法”的指导时,我试图等待我的HandleConnectionAsync呼叫,但如果我使用async,我最终会得到以下结果:
public override async Task OnConnected() {
await HandleConnectionAsync(Context);
await base.OnConnected();
}
Run Code Online (Sandbox Code Playgroud)
但我不会返回任何东西。这样做的正确方法是什么?
但我不会返回任何东西。这样做的正确方法是什么?
您不需要返回任何东西。async Task是 (synchronous) 的异步等价物void。Task意味着没有返回值,因此您的代码已经正确。
换句话说:将为您async构造返回的Task/ 。因此,Task<T>如果您的方法没有(async如第一个示例中所示),您需要返回一个任务;但如果你的方法确实有async(如你的第二个例子),那么你就没有。