我有一种情况,我应该跟踪应用于字段的FIRST更改。这个东西适用于结构的“some”(10,如果我没有错),我需要尽可能高效(它是一个结构,将被集中用于在线程之间传递信息以呈现/更新数据;它是基本上传递struct的消息。)
在这种情况下,我说的是xbox .net紧凑框架,我听说属性有性能问题,因为它们没有内联,所以我的问题是:
面对这种情况最好的方法是什么?
2点想法:
1)我会跟踪对字段所做的第一次更改,因此我使用属性,它会自动将位字段设置为1来表示“我”已被改变!“ (这个位字段是单个int的一部分,所以它只是一个4字节的开销),但我会浪费所有其他调用这个属性,因为它们只会更改值,因为该位已经设置(直到下一帧obviusly )
2)我手动跟踪字段的变化(这将是公开的),用我自己的手设置位(更多错误可能性但优化)
感谢您的任何建议
答案 0 :(得分:1)
我能想象的唯一“改进”的做法(1)将使用委托 - 保留两个版本的属性集代码,一个设置位字段,另一个不设置。然后在设置位后使属性使用第二个版本。这样你就可以避免总是设置位字段的开销(但会产生委托调用的开销较小)。
答案 1 :(得分:0)
正如rsenna所说,我找到的唯一解决方案是留在公共领域或使用功能,而不必担心执行缓慢。这个
没有解决方案