求一些DLL回调方案
EXE程序调用DLL的接口函数执行某些功能操作,这些操作可能是比较耗时的,为了不阻塞应用程序
DLL中的执行放在线程里执行,EXE调用函数后会立即返回,等待函数结果
问题是有哪些比较好的回调方案来通知程序接受返回结果(返回值可能是复杂的数据类型)
消息?指定回调函数?还是其他的方法,麻烦大家列出一些方法和其优缺点
[解决办法]
置顶的说多线程不是挺好的嘛,设置个Event然后等待Event
在设置个共享内存应该就可以了,多线程通讯方式挺多的
要不也可以试试自定义消息,函数成功后发送消息即可
[解决办法]
回调函数就可以,或者发送消息也可以
[解决办法]
我喜欢用回调,这样即使该功能放在没有Form的程序中如服务程序中,也能方便的执行,
DLL中
申请内存
获取数据
整理数据
回调(数据参数)
内存回收等
这样作结构比较清楚,通常情况下,只有数据要在Form上展示的时候,才用消息同步,值得注意的是:Exe中的回调函数是在线程中执行的