CNDEV
CNDEV.ORG
当前在线
论坛
CBD
程序员情感CBD
程序员见面交流会
CBD开发区
Java/J2ME
.NET/C#
数据库
Delphi/BCB
Visual C
其它
修真养身
中国象棋
纪念日
谈钱太俗,还是投机吧
听音乐
iCosta
资源共享
一隅
好文共赏
看电影看美剧
待定
狗屎
雪域召唤
工作流
专业显摆区
语录
情感
批评与自我批评
爱情故事
发牢骚
看三点区
游戏
CNDEV-CS/WOW
浩宇长空
生活
家有XPH
我爱学英语
美食天地ORG
半调子体育迷
观澳园友邻
搞笑奇文
拍照片
我读书我存在
论坛系统
超级垃圾站
系统建议及BUG
系统测试
中国开发网
: 论坛:
程序员情感CBD
: 贴子 414725
pcplayer
: 多谢!我认真读一下。
[阅读: 380] 2006-10-05 09:59:56
<空>
相关信息:
delphi 的接口,如果那个接口没人用了,我想把接口放进 Pool 里。问题是,TInterfacedObject 在接口计数减少的时候,没有任何的事件代码可以给我用。
(205字)
(
pcplayer
[876]
2006-10-05 08:51
)
你想干什么?或者换一个问法,你想实现一个什么UseCase?
(空) (
茶壶
[526]
2006-10-05 08:56
)
其实就是想实现一个对象池。不过,我想用接口的办法。
(空) (
pcplayer
[392]
2006-10-05 08:58
)
那不用管什么_Release吧?
(210字)
(
茶壶
[485]
2006-10-05 09:05
)
GetPooledInterface时,取一个refCount较小的就行 -- 这个办法我想过,效率会比较低,可能。
(304字)
(
pcplayer
[462]
2006-10-05 09:18
)
那要不,在_Release中,你另搞个单例对象标识一下。
(24字)
(
茶壶
[446]
2006-10-05 09:49
)
想试一下用接口,主要是想利用接口的那个引用计数是自动的,大家都不用了,那个数字自动减少。
(空) (
pcplayer
[420]
2006-10-05 09:02
)
呵。其实也不是自动的。
(118字)
(
茶壶
[405]
2006-10-05 09:10
)
是啊。我就是想利用这个自动加减计数,这样程序里哪个地方忘记了释放也没关系了。但现在看来是利用不上。
(空) (
pcplayer
[514]
2006-10-05 09:14
)
用Semaphores模式呢?
(36字)
(
茶壶
[439]
2006-10-05 09:42
)
多谢!我认真读一下。
(空) (
pcplayer
[379]
2006-10-05 09:59
)
这篇文章我读了一下,他从 POOL 里找个空闲的出来,也是遍历搜索一个 RefCount = 1 的。我就是想避免遍历搜索。
(空) (
pcplayer
[455]
2006-10-05 16:15
)
定义一个对象记录之。你现在不就是要解决在两个List增删时的自调用的问题吗?
(139字)
(
茶壶
[499]
2006-10-05 17:04
)
不错
(6字)
(
好望角
[383]
2006-10-05 17:28
)
本来就是。吼吼。
(60字)
(
茶壶
[380]
2006-10-05 18:02
)
偶也不行
(8字)
(
好望角
[351]
2006-10-05 18:27
)
最简单的办法大概还是 destroy 那里,写个代码把自己丢进一个 List 里去,把自己从另外一个 List 里删除。
(空) (
pcplayer
[474]
2006-10-05 17:49
)
那你用Interface干什么?
(122字)
(
茶壶
[496]
2006-10-05 18:01
)
你可以不用TinterfaceObject
(21字)
(
好望角
[423]
2006-10-05 18:29
)
之前我一直都是用 TMyInterfacedObject --- 改造了一下,不会因为接口释放自动被销毁。
(空) (
pcplayer
[456]
2006-10-06 02:54
)
自己写的接口么?
(11字)
(
好望角
[427]
2006-10-05 12:23
)
嗯。覆盖对象的 destroy 是个办法。我总想着从接口里去找办法。
(空) (
pcplayer
[442]
2006-10-05 12:24
)
吼。直接得很。
(11字)
(
茶壶
[397]
2006-10-05 14:20
)
能完成任务就行
(15字)
(
好望角
[361]
2006-10-05 15:05
)
试验结果:在 destroy 里似乎不行。最后还是在 _Release 里搞定。现在有另外一个问题: 引用对象的效率和引用接口的效率,哪个更高?
(空) (
pcplayer
[474]
2006-10-06 08:23
)
Destroy为什么不行?
(35字)
(
好望角
[391]
2006-10-06 08:41
)
D7,如果我在 Destroy 里把自己的接口丢进 InterfaceList 里去,再从里面取出来接口的时候会直接出 AV 错误。当然丢进去后我直接 Exit 了,没有继续执行 ……
(空) (
pcplayer
[439]
2006-10-06 08:53
)
哦,你不应该用Exit
(47字)
(
好望角
[400]
2006-10-06 09:07
)
看了一下VCL,这样消耗太高了。
(32字)
(
好望角
[422]
2006-10-06 09:11
)
Abort 我试过是可以的。但 Abort 是引发异常,不光不释放,连后面的代码都不执行了。
(空) (
pcplayer
[451]
2006-10-06 09:23
)
欢迎光临本社区,您还没有登录,不能发贴子。请在
这里登录