网易首页 > 网易号 > 正文 申请入驻

一种编写回调函数的简单方法

0
分享至

繁琐的重复性工作

在之前的一篇文章中,我们讨论了这样一个主题:如果回调函数是一个类的成员函数,则这个回调函数必须被声明为静态的。
编写一个静态的回调函数,其实并不复杂,但是还是比较繁琐,下图中展示了一个正儿八经的回调函数定义:

在这个类中,它有一个线程过程函数,这个函数必须具有正确的函数原型,然后为了能够在线程过程函数中访问到类对象,你需要将一个对象指针作为线程的参数传递进去。

的确,我们每次编写这样的线程过程函数时,都可以这样手动的编写重复的代码,但是,如果我们使用一种更加精巧的手法来编写这个回调函数,则我们可以轻松地应对诸如此类的重复应用场景,并能顺利地访问到这个“this”指针,听起来还挺有意思的,对吧?

如何改进我们的代码?

可以使用下面的模板代码来对这个线程过程函数进行抽象化,如下图所示:

这个模板代码声明了一个模板化的线程过程函数。请注意,我们这里使用了正确的调用约定CALLBACK来声明这个模板函数,所以,它可以直接传递给CreateThread函数。
接下来,我们的类代码就可以简化到下面的版本,请看:

通过对代码进行模板化改造,我们将之前版本中的回调函数定义从类中隐藏起来,实际上该回调函数由编译器自动从模板中生成出来。这样,我们就可以将注意力集中在逻辑功能上,而不用花时间在琐碎的重复编码上,是不是感觉轻松了一些呢?

总结

通过合理使用模板这个技术,可以将重复性的代码交给编译器来做,从而将宝贵的时间用在系统核心功能的构建上。

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Wrapper templates to make writing callback functions slightly easier》

最近我写了个东西

正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。
我想:你值得拥有。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
尺度大?夏思凝穿三角裤遭网友吐槽:吴艳妮都没敢这么穿

尺度大?夏思凝穿三角裤遭网友吐槽:吴艳妮都没敢这么穿

追月幼儿舞蹈
2024-03-29 09:51:09
为男友摘子宫,剃寸头打舌环,从影后到魔女:47岁的她活成这样……

为男友摘子宫,剃寸头打舌环,从影后到魔女:47岁的她活成这样……

最潮生活
2024-03-21 21:49:15
女神变大妈!网飞《三体》叶母是唐国强同学,曾拒绝阿兰德龙求婚

女神变大妈!网飞《三体》叶母是唐国强同学,曾拒绝阿兰德龙求婚

头号电影院
2024-03-28 21:44:34
俄国宣布进入战争状态!北约懵逼,网友:揍了3年乌克兰算啥?

俄国宣布进入战争状态!北约懵逼,网友:揍了3年乌克兰算啥?

步论天下事
2024-03-26 10:00:03
日本秋刀鱼被查出致癌物超标40倍!不止海鲜,日本糖果发现致癌放射物【附中国核污染防治行业市场需求分析】

日本秋刀鱼被查出致癌物超标40倍!不止海鲜,日本糖果发现致癌放射物【附中国核污染防治行业市场需求分析】

前瞻网
2024-03-28 17:09:11
猪队友!大S律师被张兰投诉,盛怒下说露嘴,汪小菲所说竟是真的

猪队友!大S律师被张兰投诉,盛怒下说露嘴,汪小菲所说竟是真的

花花lo先森
2024-03-28 16:11:37
同一人,演完《小日子》又演《追风者》,越来越美,越来越可恨

同一人,演完《小日子》又演《追风者》,越来越美,越来越可恨

娱乐圈酸柠檬
2024-03-29 11:06:28
追风者:沈近真做梦都想不到,能够洗脱嫌疑,关键竟然是李晟达

追风者:沈近真做梦都想不到,能够洗脱嫌疑,关键竟然是李晟达

娱乐圈酸柠檬
2024-03-29 12:37:33
普京:俄公民在阅读时间方面排名世界第二,排名第一是中国

普京:俄公民在阅读时间方面排名世界第二,排名第一是中国

环球网资讯
2024-03-28 14:19:14
空砍33+32+32!浪费东契奇天赋,你若联手杰伦格林,火箭直接争冠

空砍33+32+32!浪费东契奇天赋,你若联手杰伦格林,火箭直接争冠

巴叔GO聊体育
2024-03-29 14:26:41
俄侦委会称又抓获一名参与资助莫斯科州音乐厅恐袭事件的嫌疑人

俄侦委会称又抓获一名参与资助莫斯科州音乐厅恐袭事件的嫌疑人

财联社
2024-03-28 23:01:20
以猛烈袭击叙利亚,“36名叙军人丧生”

以猛烈袭击叙利亚,“36名叙军人丧生”

参考消息
2024-03-29 16:34:10
国土严重“偏心”的十个国家

国土严重“偏心”的十个国家

梦沉古道
2024-03-27 06:57:21
刘青山被枪决多年后,三个孩子找到举报者李克才:请帮我父亲翻案

刘青山被枪决多年后,三个孩子找到举报者李克才:请帮我父亲翻案

百年历史老号
2024-03-28 10:26:38
“渐冻症”致病新原因找到了!原来是它“毒死”了神经元,还会加速衰老

“渐冻症”致病新原因找到了!原来是它“毒死”了神经元,还会加速衰老

学术经纬
2024-03-27 08:10:02
ESPN:GG-杰克逊比布朗尼小两个月,而他已经和勒布朗对位了

ESPN:GG-杰克逊比布朗尼小两个月,而他已经和勒布朗对位了

直播吧
2024-03-29 09:48:14
林毅夫:特斯拉十几年最高产量不到3万台,来华第二年就生产48万台

林毅夫:特斯拉十几年最高产量不到3万台,来华第二年就生产48万台

观察者网
2024-03-27 19:08:22
上海这一天女星告诉你:“干干瘪瘪”不叫美,珠圆玉润才更有韵味

上海这一天女星告诉你:“干干瘪瘪”不叫美,珠圆玉润才更有韵味

糊咖娱乐
2024-03-29 09:06:58
割耳朵!电击下体!恐袭嫌犯的俄式审讯有多刺激?

割耳朵!电击下体!恐袭嫌犯的俄式审讯有多刺激?

军武次位面
2024-03-27 17:14:40
第一目标位或在这里!下周一4月1日大盘将何去何从?

第一目标位或在这里!下周一4月1日大盘将何去何从?

春江财富
2024-03-29 12:27:23
2024-03-29 17:28:49
漫漫开发路
漫漫开发路
Topomel Box开发者
815文章数 1339关注度
往期回顾 全部

科技要闻

雷军:我们是卷王,建议BBA车主感受下时代

头条要闻

威马汽车负债超过203亿元 多位高层被抓

头条要闻

威马汽车负债超过203亿元 多位高层被抓

体育要闻

拒绝为国出战,他是足坛"天选打工人"

娱乐要闻

胡夏被曝有孩子!工作室火速辟谣

财经要闻

张维迎:如何正确理解企业家精神?

汽车要闻

找回久违的开怀大笑 试驾小米SU7 Max

态度原创

数码
手机
健康
公开课
军事航空

数码要闻

苹果最强自研芯片!M3 Ultra首度曝光

手机要闻

赵明回应荣耀“大动作”:它代表荣耀迎来一个新起点

早防早筛,远离肝硬化

公开课

30岁之前,你要学会的13件事情

军事要闻

乌方声称击落两枚俄"锆石"高超音速导弹 俄方未予回应

无障碍浏览 进入关怀版