qt中的线程 拥有权 一个对象属于哪个线程
答案:2 悬赏:0 手机版
解决时间 2021-03-11 00:47
- 提问者网友:凉末
- 2021-03-10 13:43
qt中的线程 拥有权 一个对象属于哪个线程
最佳答案
- 五星知识达人网友:过活
- 2021-03-10 15:17
一个对象的线程就是创建该对象时的线程,而不论该对象的定义是保存在那个线程中;
子线程中定义的对象的情况:( 其实也好理解,子线程中,创建otherObj的时候,不再run()函数中,所以,otherObj对象不属于MyTHread )
1
2
3
4
5
6
7
8
9
10
11
12
13
classMyThread:publicQThread
{
public:
MyThread()
{
//因为该构造函数属于主线程,所以,otherObj依附于主线程,即属于主线程,而不属于子线程MyThread,这是关键
otherObj=newQObject;
}
private:
QObject*otherObj;
};
在我们创建了MyThread对象之后,otherObj的线程依附性是怎样的?是不是就是MyThread所表示的那个线程?
要回答这个问题,我们必须看看究竟是哪个线程创建了它们:实际上,是调用了MyThread构造函数的线程创建了它们。因此,这些对象不在MyThread所表示的线程,而是在创建了MyThread的那个线程中。即主线程,
我们可以通过调用QObject::thread()可以查询一个QObject的线程依附性。
子线程中定义的对象的情况:( 其实也好理解,子线程中,创建otherObj的时候,不再run()函数中,所以,otherObj对象不属于MyTHread )
1
2
3
4
5
6
7
8
9
10
11
12
13
classMyThread:publicQThread
{
public:
MyThread()
{
//因为该构造函数属于主线程,所以,otherObj依附于主线程,即属于主线程,而不属于子线程MyThread,这是关键
otherObj=newQObject;
}
private:
QObject*otherObj;
};
在我们创建了MyThread对象之后,otherObj的线程依附性是怎样的?是不是就是MyThread所表示的那个线程?
要回答这个问题,我们必须看看究竟是哪个线程创建了它们:实际上,是调用了MyThread构造函数的线程创建了它们。因此,这些对象不在MyThread所表示的线程,而是在创建了MyThread的那个线程中。即主线程,
我们可以通过调用QObject::thread()可以查询一个QObject的线程依附性。
全部回答
- 1楼网友:不想翻身的咸鱼
- 2021-03-10 15:46
虽然我很聪明,但这么说真的难到我了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯