• 4718阅读
  • 1回复

多线程初始化传递参数问题 [复制链接]

上一主题 下一主题
离线ruger
 
只看楼主 倒序阅读 楼主  发表于: 2008-12-19
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
昨天的多线程弹出错误提示的问题解决了,我很高兴,但是又来了新问题:
main.cpp->GUI class->work class(多线程的那个类)
work class定义如下:

class PcapThread : public QThread
{
    Q_OBJECT

public:
    PcapThread(char* nicname, char* errors,char *fliter, CALLBACKFUN, QObject *parent);
    void stop();

protected:
    void run();

signals:
    void wrong(QString);

private:
    volatile bool stopped;
    CALLBACKFUN pcallback;
.......
定义了一个用于GUI class向PcapThread传递参数的初始化函数:    PcapThread(char* nicname, char* errors,char *fliter, CALLBACKFUN, QObject *parent);

具体定义如下:
PcapThread::PcapThread(char* nicname, char* error_content,char *filter,  CALLBACKFUN callback,QObject *parent)
    : nicname(nicname), error_content(error_content),filter(filter),
    pcallback(callback),QThread(parent)
{
    stopped = false;
}

但是在GUI class里面调用这个PcapThread开传递参数,比如nicname,发现变量nicname的地址没有变化,但是传递给PcapThread后,内容却变了,请问这是什么原因?谢谢~~
离线ruger
只看该作者 1楼 发表于: 2008-12-19
更正一下,我发现是在调用具体的work class的那个thread变量的start()时变的,PcapThread::PcapThread(char* nicname, char* error_content,char *filter,  CALLBACKFUN callback,QObject *parent)本身并没有变
快速回复
限100 字节
 
上一个 下一个