0

我最近遇到了我的代码问题,我有 1 个线程正在执行和运行游戏,另一个线程检查可能在事件中调用的所有事件:

事件示例:

       try {
            if (currentMinigame != null) {
            //Longer code and method execution time would usually be here, 
            //but for the sake of simplicity, I'll just use this
                currentMinigame.onEntityShootBow(e);
            }
        } catch (Exception ex) {
            exitEarly(ex);
        }

问题是,在某些时候,执行小游戏的线程会将 currentMinigame 设置为 null。此时,将在行上调用一个空指针:currentMinigame.onEntityShootBow(e);

有同步所有这些事件的简单方法吗?(大约有 25 个)

我想过在 Object currentMinigameLock = new Object(); Synchronized(currentMinigameLock) 每一个事件中都使用它,但每次我使用同步;我几乎看不到任何变化,而且要重构大量的代码!会有更简单的方法吗?

多谢你们!-汤姆

4

0 回答 0