我在家里的桌面上有一个应用程序,它使用websocket库连接到它的服务(这部分不是我写的,但我有代码),而且很少会在下面这行抛出NullReferenceException:
socket?.Dispose();由于服务的不可靠性,它被设置为大约每3-5分钟重新连接一次。假设每天这一行可能被执行大约300次。在过去的3年里,这种情况可能每3-4个月发生一次。该应用程序已定期更新到最新版本的c#框架,从4.5开始。
在什么情况下会发生这种异常?
发布于 2018-04-11 19:01:08
documentation声明,对于obj?.DoSomething(),重点是我的:
使用?
新方法。是线程安全的,因为编译器只生成一次计算obj的代码,并将结果保存在一个临时变量中。
因此,问题只能由Dispose()的执行引起,无论是框架的一部分还是您自己的实现。
https://stackoverflow.com/questions/49771769
复制相似问题