• 3095阅读
  • 0回复

[提问]想问一个多线程间函数调用的问题 [复制链接]

上一主题 下一主题
离线wangcheng22
 

只看楼主 倒序阅读 楼主  发表于: 2012-08-17
简单的说, 主线程的函数能不能调用 子线程创建的类的成员函数?
比如:


class MyClass
{
public:
    MyClass();
    ~MyClass();
    void func(){this->deleteLater();}
};




class MyThread:public QThread
{
public:
    MyThread();
    ~MyThread();
    void run();


    void MainthreadFunc();
private:
    MyClass *myclass;
};


void MyThread::run()
{
    MyClass *myclass = new MyClass();
    forever
    {
        if(myclass == NULL)
            return;
    }
}


void MyThread::MainthreadFunc()
{
    if(myclass)
    {
        myclass->func();
    }
}

那么, MyThread::MainthreadFunc() 直接调用子线程的函数 func() 会不会有问题?不考虑代码中的内容,这种线程间直接调用方式安全吗?有没有通用的安全调用方式?

谢谢
快速回复
限100 字节
 
上一个 下一个