问题描述
所以我有一个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 (将#修改为@)