0

我目前使用 boost::interprocess 在共享内存中有一个 1028*32 字节的结构数组。其中每一个都包含来自游戏中玩家的位置和绘图信息,我从 DLL 中抓取这些信息以在远程覆盖中进行绘制。我控制读写的基本机制是在每个进程打开和关闭的共享内存对象的开头使用一个布尔值。这种方法有效,我可以从游戏中的每个玩家那里获取信息,但不幸的是这种方法真的很慢。有什么方法可以更快地传输这些信息?如果可能的话,我想拥有它,这样我就可以在数组的特定成员更新后调用我的绘图函数(比如成员 0 被更新,在我的刮板 dll 更新下一个成员之前,开始绘制成员的信息0,然后继续)。

4

1 回答 1

0

好吧,您可以为每个成员设置一个标志,并不断处理数组并检查新设置的标志。如果您需要更多事件样式的通知,那么您可以为每个成员设置一个监视器,并在它更新后发出信号。不过,我不确定拥有 1000 台显示器会如何影响性能。

于 2013-09-15T07:56:07.567 回答