gpt4 book ai didi

c++ - QObject::moveToThread 中的移动语义

转载 作者:行者123 更新时间:2023-11-27 23:50:22 25 4
gpt4 key购买 nike

QThread class 的文档中一个示例性设置的工作原理如下:

public:
Controller() {
Worker *worker = new Worker;
worker->moveToThread(&workerThread);
//some connects to thread and worker
workerThread.start();
}
~Controller() {
workerThread.quit();
workerThread.wait();
}

这里 Qt 是否使用 moveToThread(...) 函数实现了实际的移动语义? IE。线程是否会在完成后负责取消分配 Worker 对象,因为在 Controller() 中分配的 Worker* 永远不会在任何地方显式删除?

最佳答案

moveToThread 不会转移所有权。

在链接示例中,此行将确保在线程完成后删除 worker:

connect(&workerThread, &QThread::finished, worker, &QObject::deleteLater);

关于c++ - QObject::moveToThread 中的移动语义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46913927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com