1

有没有办法__gshared用 DMD 标记所有对象?我正在开发一个游戏引擎,其中几乎所有内容都需要在线程之间共享,并且垃圾邮件__gsharedshared无处不在并不能减少它。

对于希望我不这样做的每个人:关键部分将是最小的,并减少到检查枚举是否设置为已加载(当然是互斥的)。所以并发不会给我带来任何好处。

4

2 回答 2

5

您可以将所有变量放在一个块中并声明共享

__gshared{
   SharedClass instance;
   //...
}

另请注意,共享类或结构中的所有字段都是共享的

但是我应该注意到,这种不便是设计使然,并且鼓励重组数据以最大程度地减少共享内容

于 2013-03-15T15:32:21.400 回答
-1

__gshared 告诉垃圾收集器资源可以在外部代码中使用,因此您需要手动分配/释放它(因此您可以在任何线程中访问相同的资源),另一方面,shared 用于实际的多线程共享。

虽然我可能在某些细节上错了,但实际的想法是

于 2013-03-19T05:08:37.633 回答