我正在使用C#编写多人FPS游戏,并且客户端发生了一些奇怪的事情:发送新子弹射击数据包的用户会导致服务器向所有连接的用户广播新的子弹数据包,但是这个例外被抛出:
参见第94行:我尝试访问分组数据的最后一部分,由!
分割,其中包含子弹必须射击的光标位置。
我尝试访问它,并且抛出“对象引用未设置”异常,即使您可以清楚地看到已定义Parts[2]
(查看调试详细信息,它是"612,311"
,并且但是当我尝试访问它时,抛出了这个异常。)
为什么它不起作用呢?
答案 0 :(得分:1)
应用程序是多线程的吗?是否有其他东西接收到可以修改它的相同消息,或者在接收者处理它之前发送消息的任何内容都可以修改它? Message
是一个可以重置其值的类中的成员变量吗?
你看到的东西似乎不可能。当发生这种情况时,在单线程应用程序中通常是不可能的,但是当多个线程访问相同的变量时可能会这样做。