浅谈引用计数

2008-04-10 02:57:13来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

浅谈引用计数

前言

作为Delphi程序员,您可以不用看这节内容,但是如果您想更多的了解一些COM内部技术,或是在对象模型与引用模型之间可以进行很好的控制的话,笔者更希望你可以抽出些许时间来看这一切的内容,而益处提体的将很明显,您可以自由的用一些技巧来解决让您头疼的问题。好了,继续我们今天的交流;

在组件技术必备知识二中,我们对接口(Interface)进行了一些介绍,当我们并没有深入的对接口的实现/效率/优化等问题进行进一步的禅述,而了解它们的确对于我们以后的编程是有很大的帮助的,我们都知道,每个接口都会维护一个全局变量FRefCount (这是Object Pascal里的变量名称,如果是在C 里,它维护的是m_CRef),它专门用来控制接口的生命周期,或是组件的生命周期(组件/接口同样具有生命周期),当然,我们也可以给接口强制给值Nil同样可以释放接口,但那是不安全的或是不应该被推荐的。在此处之所以将引用技术做为一个课题例出来就是希望各位可以对组件的优化、效率方面认识一些。而FRefCount是在_AddRef and _Release中得以实现的,如下代码(本节所有代码摘自Delphi6中,只要您的参考版本是Delphi4以上,代码都是相同的)。

function TInterfacedObject._AddRef: Integer;

begin

Result := InterlockedIncrement(FRefCount);

end;

function TInterfacedObject._Release: Integer;

begin

Result := InterlockedDecrement(FRefCount);

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:程序设计和调试中的几点总结

下一篇:计算PI值到一亿位的算法