【发布时间】:2015-09-17 15:54:52
【问题描述】:
在 AspNet SignalR 客户端中,是否需要处理 HubConnection 的操作?
据我所见,这似乎需要一些时间......
【问题讨论】:
标签: asp.net .net dispose signalr.client signalr-2
在 AspNet SignalR 客户端中,是否需要处理 HubConnection 的操作?
据我所见,这似乎需要一些时间......
【问题讨论】:
标签: asp.net .net dispose signalr.client signalr-2
如果您拨打Stop(),则不需要。
见https://msdn.microsoft.com/en-us/library/dn235890(v=vs.118).aspx
否则,您应该始终在使用完 IDisposable 对象后对其进行处置。
如果花费的时间太长(即阻塞当前线程),只需在 Task 上停止它,类似于:
Task.Run(()=>hubConnection.Stop());
【讨论】:
stop(),因为它与Dispose() 完全相同。来自信号器源代码protected virtual void Dispose(bool disposing) { if (disposing) { Stop(); } }
花费太多时间是什么意思?能详细点吗?您是否遇到超时异常?
摘自《C# 5.0 in a Nutshell》一书:
要遵循的安全规则(几乎在所有情况下)是“如有疑问,请丢弃”。 一次性物品——如果它会说话的话——会说:
当你完成我的工作后,请告诉我。如果简单地放弃,我可能会 给其他对象实例、应用程序域、 计算机、网络或数据库!
如果不是破坏交易,我会说 dispose。也可能有助于找出需要这么长时间的原因。
【讨论】: