QWorker自定义作业数据指针释放方法

QWorker今天的更新加入jdfFreeAsC1~C6是为了应对C++中丰富的内存分配和管理方式,提供了6种自定的的处理方式供用户选择。当然Delphi你要自己去管理一些东西,也一样可以用,比如将Data指向一个池中的对象,然后在释放时返回到池中。下面的例子写的是针对C++的,如new/delete,new[]/delete[],malloc/alloc/free/,LocalAlloc/LocalFree等等,个人觉得对于一个应用程序来说,6种自定义的方式,应该是够用了。

【示例】

下面的例子将jdfFreeAsC1对应了new/delete,jdfFreeAsC2对应于new[]/delete[],先实现一个全局函数,用来关联到Workers的OnCustomFreeData。


在投寄相关类型的Data参数之前,要注册事件关联:


现在可以按照常规的方式投寄并自动释放内存了。


可以看到,我们的DoPostJobDone没有做任何对AJob->Data成员的处理,而系统会自动调用FreeDataByNew去释放上面代码中分配的p指针。

分享到:

1 条评论

沙发空缺中,还不快抢~