是否可以创建一个从不同类调用函数的线程?
Is it possible to create a thread that calls a function from a different class?
我正在开发一个C++11多重威胁的GUI程序。
所以我有DevTools
和MainWindow
课。我想从MainWindow
clicked(( 事件函数调用属于DevTools
的函数。(所有对象定义都是在类的定义上创建的(。
MainWindow
调用Obtain_XY_Thread
上的函数:
void MainWindow::on_obtain_xy_clicked()
{
DevTools.Obtain_XY_Thread();
}
所以DevTools::Obtain_XY_Thread()
被调用,它创建了一个Obtain_XY
线程,但我真正想要的是直接调用Obtain_XY
:
void DevTools::Obtain_XY_Thread()
{
thread obtain_xy(&DevTools::Obtain_XY, *this);
obtain_xy.detach();
}
void DevTools::Obtain_XY()
{
for(int i=0;i<500;i++){
//does something
}
}
这行得通,但我认为这不是正确的方法。有没有办法在不创建另一个函数的情况下调用Obtain_XY
?如何直接在MainWindow::on_obtain_xy_clicked()
上创建线程?
这可以通过添加std::thread
来简单地修复:
void MainWindow::on_obtain_xy_clicked()
{
std::thread obtain_xy(&DevTools::Obtain_XY, &DevTools);
obtain_xy.detach();
}
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- 为什么使用 "this" 指针调用派生成员函数?
- 函数调用中参数的顺序重要吗
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 在c++类上调用void函数
- 为什么 std::unique 不调用 std::sort?
- 是否可以创建一个从不同类调用函数的线程?
- 在基类方法中调用不同类的方法
- 如何让来自不同类的内联函数相互调用
- 无法在不同类上编译代码调用静态功能
- 在构造函数中调用不同类的构造函数?
- 从不同类调用函数
- 在调用不同类的函数时刷新 Windows 窗体
- MATLAB:OOP调用来自不同类的函数
- 如何调用以不同类模板作为参数列表的函数模板
- 从不同类的构造函数调用构造函数
- C++:在不同类的派生对象的基指针上调用静态成员函数