我在家里的桌面上有一个24/7全天候运行的应用程序,它使用websocket库连接到它的服务(这部分不是由我编写的,但我有代码),很少会抛出{{1在这一行:
NullReferenceException
它的设置使得它因为服务的不可靠性而每3-5分钟重新连接一次。所以,让我们说每天这行可以执行~300次。这可能发生在过去3年中每3-4个月一次。自4.5以来,该应用程序已定期更新到最新版本的c#framework。
在什么情况下会发生这种异常?
答案 0 :(得分:1)
documentation指出obj?.DoSomething()
强调我的:
新方法[使用?。]是线程安全的,因为编译器生成的代码只评估[obj]一次,将结果保存在临时变量中。
所以问题只能由Dispose()
的执行引起,无论是框架的一部分还是你自己的实现。