我正在开发 C#/directx 游戏客户端到 Java 的端口,这样我就可以学习一些 C#(因为我完全亵渎了它),同时提高了我对 java opengl 引擎的了解。
当我遇到以下情况时:
Monitor.Enter(preloadDictionary);
try {
foreach (PreloadEntry entry in preloadDictionary.Values) {
if (entry.loaded) continue;
return entry;
}
} finally {
Monitor.Exit(preloadDictionary);
}
我可以假设它如下所示吗?
syncronized(preloadDictionary) {
[...]
}
在以下情况下:
Monitor.Enter(worldServerMap);
try {
worldServerMap[rv.WorldName] = entry;
Monitor.PulseAll(worldServerMap);
} finally {
Monitor.Exit(worldServerMap);
}
是否PulseAll()
像notifyAll()
唤醒所有等待资源的线程一样?(但我在代码中找不到任何Monitor.Wait()
被调用的地方)。