写一段回调函数的使用方法,获取其他线程生成的值
时间: 2024-02-02 22:04:26 浏览: 34
好的,以下是一个简单的回调函数使用方法,可以获取其他线程生成的值:
```c++
#include <iostream>
#include <thread>
#include <functional>
// 回调函数类型
typedef std::function<void(int)> Callback;
// 子线程函数
void threadFunc(Callback cb)
{
int value = 42;
// 调用回调函数,将值传递给主线程
cb(value);
}
int main()
{
// 创建回调函数
Callback cb = [](int value) {
std::cout << "Value received: " << value << std::endl;
};
// 创建子线程并传递回调函数
std::thread t(threadFunc, cb);
// 等待子线程结束
t.join();
return 0;
}
```
在上面的代码中,我们定义了一个回调函数类型 `Callback`,它接受一个整数参数。然后我们在主函数中创建了一个回调函数 `cb`,它会在子线程中被调用。接着我们创建了一个子线程 `t`,并将回调函数作为参数传递给它。在子线程函数中,我们生成了一个值 `42`,并将它传递给回调函数。回调函数被调用后,它会在控制台输出接收到的值。
注意,在回调函数中,我们可以使用任何我们想要的方式处理接收到的值。上面的代码只是一个简单的示例。