【发布时间】:2018-06-08 09:23:45
【问题描述】:
signalr 的 .NET 核心客户端有一个 HubConnection 类,可以通过以下方式使用。
HubConnection connection = new HubConnectionBuilder()
.WithUrl("https://localhost:44321/hub")
.Build();
await connection.StartAsync();
connection.On<SomeEvent>("HubMethodName", (ev) => Console.WriteLine("EventHandler"))
我想在事件处理程序中做一些异步工作,但对我来说并不是很明显,因为大多数重载都期望Action。使用async void 有效,但我不确定这是个好主意。此外,签名On(string methodName, Type[] parameters, Func<object[], Task>) handler) 有一个过载,这是有希望的,但我想我会期待一个On<T>(string methodName, Func<T, Task> handler)。我可以自己使用该签名创建一个扩展方法,但是当它不存在时,我在想我可能错过了一些重要的事情?
【问题讨论】:
-
拍得好。我正要提交这个确切的问题。没有回复?尽管全世界都告诉我不要这样做,但我即将走上使用
async void的相同路线。 -
@TheBuzzSaw 最好选择正确的行为而不是可爱的语法。
-
感谢两年后的回复。我早就处理过这个问题了。
标签: signalr.client