为什么我有时会在?之后得到Null引用异常。校验?

时间:2018-04-11 09:45:44

标签: c#

我在家里的桌面上有一个24/7全天候运行的应用程序,它使用websocket库连接到它的服务(这部分不是由我编写的,但我有代码),很少会抛出{{1在这一行:

NullReferenceException

它的设置使得它因为服务的不可靠性而每3-5分钟重新连接一次。所以,让我们说每天这行可以执行~300次。这可能发生在过去3年中每3-4个月一次。自4.5以来,该应用程序已定期更新到最新版本的c#framework。

在什么情况下会发生这种异常?

1 个答案:

答案 0 :(得分:1)

documentation指出obj?.DoSomething()强调我的:

  

新方法[使用?。]是线程安全的,因为编译器生成的代码只评估[obj]一次,将结果保存在临时变量中。

所以问题只能由Dispose()的执行引起,无论是框架的一部分还是你自己的实现。