当前位置: 首页 > backend >正文

C++顺序嵌套回调函数

当需要有顺序的到多个较慢的设备中读取数据时,一般需要启动一个线程,将回调函数传入线程中,设备中读到数据后,通过传入的回调函数进行操作

#include <iostream>
#include <functional>
#include <thread>
#include <chrono>

class IntReader {
public:

void BeginRead(const std::function<void(int)>& callback)
{
std::thread t([callback]() {
std::this_thread::sleep_for(std::chrono::milliseconds(3000));
int value = 1;

            callback(value);
});
t.detach();
}
};

void Print_My()
{
IntReader mm;
int total = 0;
mm.BeginRead([&total](int result1) {
total += result1;
IntReader mm2;
mm2.BeginRead(
[&total](int result2)
{
total += result2;

                IntReader mm3;
mm3.BeginRead(
[&total](int result3) {
total += result3;
std::cout << total << std::endl;

                    }


);
}

);
});
}


int main()
{
Print_My();

    std::cout << "Hello World!\n";
while (true)
{
std::this_thread::sleep_for(std::chrono::milliseconds(1));
}
}

http://www.xdnf.cn/news/19341.html

相关文章:

  • 飞牛NAS上部署Markdown文稿编辑器,阅读.md文件同时还可以跨平台访问!
  • Qt精华版打包教程,支持windows和Linux,每种平台支持2种方案
  • 电感值过大过小会影响什么
  • AI基础学习周报十一
  • 艾体宝案例 | 数据驱动破局:DOMO 如何重塑宠物零售门店的生存法则
  • HarmonyOS 应用开发:基于API 12+的现代化实践
  • C++从入门到实战(二十)详细讲解C++List的使用及模拟实现
  • Ubuntu安装NVIDIA显卡驱动
  • #Datawhale 组队学习#8月-工作流自动化n8n入门-3
  • LabVIEW 瀑布图与游标操作
  • 分布式事务相关
  • [软考中级]嵌入式系统设计师—核心知识点速记
  • 分布式相关
  • 【iOS】MVC架构
  • 自制扫地机器人(一)20 元级机械自动避障扫地机器人——东方仙盟
  • 晶晨线刷工具下载及易错点说明:生成工作流程XML失败
  • Trie树(静态数组实现)
  • 人工智能加速漏洞利用,15分钟即可完成概念验证?
  • 神州数码VRRP 原理与配置篇
  • 应用开发使用缓存
  • macos调用chrome后台下载wasm-binaries.tar.xz
  • 对于牛客网—语言学习篇—编程初学者入门训练—复合类型:BC136 KiKi判断上三角矩阵及BC139 矩阵交换题目的解析
  • Nginx四层负载均衡实战指南
  • 基于 YOLOv11n 的无人机航拍小目标检测算法学习
  • 鸿蒙搭配前端开发:应用端与WEB端交互
  • Go学习1:常量、变量的命名
  • 2025.8.31基于UDP的网络聊天室项目
  • LangChain Prompt管理核心:PromptTemplate与ChatPromptTemplate全解析
  • JVM学习总结
  • shell脚本(略)