因此我们看到在.Net的实现中干脆就直接引入了threadCallbackList的队列,并不断将tme(ThreadMethodEntry)加入队尾,而接收消息的进程,则不断从队首获取消息 。

文章插图
lock(threadCallbackList) { if(threadCallbackMessage == 0) { threadCallbackMessage = SafeNativeMethods.RegisterWindowMessage(Application.WindowMessagesVersion + "_ThreadCallbackMessage"); } threadCallbackList.Enqueue(tme); }当队首指向这个tme时,消息才被发送,其实是一种类似于MAS的实现,当然MAS实际是为每个CPU都建立了一个专属的队列,和Invoke的设计略有不同,不过基本的思想是一致的 。
很多时候年少时不是品不出很多东西背后味道的,这也让我错过了很多非常值得总结的技术要点,因此在春节假期总结一下最近使用C#的心得,以飨读者,顺祝大家新春愉快!
作者简介:马超,金融科技专家,人民大学高礼金融研究院校外双聘导师,阿里云MVP,华为2020年十大开发者之星,CSDN约稿专栏作者,著名的金融科技的布道者 。众多国产开源项目的推动者及贡献人 。
推荐阅读
- 抖音SEO排名的3个核心秘密
- 如何恢复被病毒隐藏的文件?听说67%的人都是这样做的
- Win7电脑怎么删除隐藏的流氓软件
- Win10的3个神仙功能,放着不用就可惜了,你都用过吗?
- Win10电脑自动安装乱七八糟的软件怎么办
- 常用DOS命令
- 超实用,喷墨打印机连供使用注意事项,堵头的处理
- 综合布线系统的定义
- Python 常用的十行代码,建议收藏
- 功能强大的手势库-Hammer.JS
