有没有办法用DMD标记所有对象__gshared
?我正在开发一个游戏引擎,其中几乎所有东西都需要在线程之间共享,并且在任何地方发送垃圾邮件__gshared
或shared
都不会削减它。
对于每个希望我不这样做的人:关键部分将是最小的,并减少到检查枚举是否设置为已加载(当然是互斥)。因此,并发性不会给我带来任何好处。
答案 0 :(得分:5)
您可以将所有变量放在一个块中并声明该共享
__gshared{
SharedClass instance;
//...
}
还要注意共享类或结构中的所有字段都是共享的
但我应该注意到,这种不便是设计上的,并鼓励重组数据以最大限度地减少共享内容
答案 1 :(得分:-1)
__ gshared告诉垃圾收集器资源可能在外部代码中使用,因此您需要手动分配/解除它(因此您可以在任何线程中访问相同的资源),另一方面共享用于实际的多个线程共享。
虽然我对某些细节可能有误,但实际的想法是