C++回调demo(线程版)(三十八)
2023-09-14 09:09:57 时间
1.代码示例
#include <iostream>
#include <string>
#include <pthread.h>
using namespace std;
typedef void (*MyFun)(int n, string str);
class Call
{
private:
MyFun myFun;
public:
void SetFun(MyFun _myFun)
{
myFun = _myFun;
}
void LetRun(int n, string str)
{
myFun(n, str);
}
};
Call call;
//定义在类中则必须是静态成员函数
static void Test(int n, string str)
{
cout << "n = "<< n << " str = " << str <<endl;
}
//定义在类中则必须是静态成员函数
static void *detectd(void* data){
//call
call.LetRun(*(int *)data,"Callback Success!");
return 0;
}
int main()
{
//调回调函数的接口,并传入一个函数作为参数
call.SetFun(Test);
pthread_t tid;
int data = 1234;
pthread_create(&tid, NULL, detectd, &data);
pthread_join(tid,NULL);
return 0;
}
相关文章
- C++ 线程同步的四种方式
- C++ 内联函数
- C++ 多线程(两个线程卖火车票)
- C/C++基础讲解(十七)之数据结构篇约瑟夫环与记录个人资料
- Open3D(C++) 快速计算点云的法向量
- Open3D (C++) 最小生成树用于法向量定向
- Open3D(C++) 体素下采样
- 全排列(C++)
- 【华为OD机试 2023】 处理器问题(C++ Java JavaScript Python)
- C/C++ 实现多线程与线程同步
- C++ 输入一行未知个数的整数
- c++11 实现半同步半异步线程池
- C++线程传递多个参数demo(四十三)
- C++打印size_t和ssize_t和int64_t和uint64_t(十四)
- VC++ 获取窗口的类名和窗口所属进程线程id(附源码)
- C++软件开发值得推荐的十大高效软件分析工具
- C++11 auto类型推导
- C++11 变长参数的宏定义以及__VA_ARGS__
- 一文带你弄懂C++中的ANSI、Unicode和UTF8三种字符编码及相互转换