如何获得HubProxy.Invoke调用的响应?

问题描述

所以我有一个C#client,它调用SignalR method的{​​{1}},集线器将返回一个hub

但是我现在遇到的行为是DateTime被卡在client上,最终导致记录以下内容:

HubProxy.Invoke

这是Possible deadlock detected. A callback registered with "HubProxy.On" or "Connection.Received" has been executing for at least 10 seconds.的代码:

client

这是private async Task<long> GetCurrentServerTimeOffset() { DateTime requestDate = DateTime.Now; DateTime serverDate = await hubProxy.Invoke<DateTime>("GetCurrentServerTime"); DateTime resultDate = DateTime.Now; long offset = serverDate.Ticks - (requestDate.Ticks + resultDate.Ticks) / 2; return offset; } 的代码:

Hub

我已经尝试将public DateTime GetCurrentServerTime() { return DateTime.Now; } 替换为await hubProxy.Invoke<DateTime>("GetCurrentServerTime"),但其行为相同...

有人知道我在做什么错,导致记录了致命警告吗?

EDIT1 :如果我在hubProxy.Invoke<DateTime>("GetCurrentServerTime").Result的{​​{1}}中放置一个断点,则该断点将被命中,而return DateTime.Now;可以毫无问题地发送响应到hub

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)