美文网首页
回调函数个人浅见

回调函数个人浅见

作者: 晓川君 | 来源:发表于2017-06-27 19:16 被阅读0次

网上关于回调函数的解释非常多,概念、代码、各种类比都很全面,这里只结合项目谈谈自己的理解。

软件基于MF框架从摄像头采集视频,其中一项功能是将帧图像保存为bmp格式。整个功能可以分两步实现,即数据采集和格式转换。数据采集由框架自带的函数实现,将采集到的图像数据push入队列,并于适当的时机pop出来,由函数实现图像格式的转换和保存。

我一开始的思路是用通信中握手的方式,当数据push后给主窗口发送一条自定义消息,由消息响应函数将数据pop出来并进行处理。这种方式需要数据调用方(界面)和发送方(底层)事先约定好,当数据采集方法封装成库时(实际上几乎一定会这样),需要使用者去了解库的细节,因此这种方式非常不灵活。

后来用回调函数实现功能。我把回调函数理解成一张图纸,好比说我需要做一件衣服,或者一条裤子,我画一张图纸去完成我的需求,虽然我没有布和线等材料,但我可以把图纸交给裁缝店替我把需求实现了。这里我的图纸就是回调函数,裁缝店就是调用方。用代码可以写成:

typedef void (CALLBACK *blueprint)(param1, ... , paramN);      //回调函数
void WINAPI tailor(param1, ... , paramN, blueprint my_suit);   //调用方

具体到项目中,回调函数的功能是实现格式转换和保存,调用借口由底层提供,功能是提供图像数据。这样调用方可以不但可以将数据保存为bmp,还能通过修改回调保存成其他格式,实现了函数的多态。

相关文章

  • 回调函数个人浅见

    网上关于回调函数的解释非常多,概念、代码、各种类比都很全面,这里只结合项目谈谈自己的理解。 软件基于MF框架从摄像...

  • JavaScript函数_08回调函数

    回调函数 回调函数(回调),当我们把某个函数作为参数传递给另一个函数的时候,这个函数就是回调函数 回调函数的基本写...

  • Promise

    回调 把一个函数A传给另一个函数B调用,那么A就是回调函数。 回调地狱 回调套回调套回调套回调套回调套回调套回调....

  • 回调函数与promise

    回调 把一个函数A传给另一个函数B调用,那么A就是回调函数 具名回调写法 匿名回调写法 多层嵌套的匿名回调(回调地...

  • 回调函数与promise

    回调 把一个函数A传给另一个函数B调用,那么A就是回调函数 具名回调写法 匿名回调写法 多层嵌套的匿名回调(回调地...

  • javascript回调函数

    javascript回调函数很玄幻。 jquery 中大量使用了回调函数。直到现在才看懂 普通回调函数 匿名回调函...

  • 异步的实现

    异步的三种实现方式: 回调函数事件Promise 回调函数 回调函数不一定是异步 但是异步一定是回调函数。 事件 ...

  • JavaScript系列之回调函数callback

    JavaScript系列之回调函数callback JavaScript回调函数的使用是很常见的,引用官方回调函数...

  • mqtt python包回调分析

    mqtt的python包,回调函数比较复杂,每次在连接之前,需要先实现回调函数,回调函数的传入参数固定 将回调函数...

  • Android使用suspendCancellableCorou

    普通的回调函数: 回调方法,模拟耗时操作 去掉回调,转换为挂起函数:

网友评论

      本文标题:回调函数个人浅见

      本文链接:https://www.haomeiwen.com/subject/ppbecxtx.html