当我使用QtNetwork时,我的应用程序中发生了一种奇怪的行为。我可以轻松地创建QTcpSever和QTcpSocket实例,一切都运行良好,但是当涉及到QTcpSocket::write()时,会发生以下错误:
错误
QObject: Cannot create children for a parent that is in a different thread.
(Parent is QNativeSocketEngine(0x7f66980022e0), parent's thread is QThread(0x7f66a0020be0), current thread is
我正在处理一个包含并行处理的程序,它必须并行执行两个任务,而且每个任务也必须并行执行两个任务,但是当我在第一个任务中运行程序时,当执行一个任务时,程序工作正常,但是在执行两个任务时有重叠的信息。这个问题有解决办法吗?
代码:
class thread_X_1(QThread):
signal = pyqtSignal(np.ndarray)
def __init__(self):
super().__init__()
var = Window()
class thread_X_2(QThread):
哪个更合适:QThread还是QFuture?我试图在QThread中传递一个QThread,但它会导致父线程和子线程的错误:/
QObject:不能为处于不同线程中的父线程创建子线程。(父线程是QNetworkAccessManager(0xc996cf8),父线程是QThread(0xaba48d8),当前线程是Citizen(0xca7ae08)
m_networkManger = new QNetworkAccessManager(this);
m_thread = new QThread();
m_data = new LoadData(m_labelsList, m_parser
我有一个需要完成任意阻塞任务的工作人员。
class Worker : public QObject
{
Q_OBJECT;
public:
using QObject::QObject;
public slots:
void start()
{
for (int i = 0; i < 10; i++)
{
qDebug("I'm doing work...");
Sleep(1000);
}
}
};
在我的MainWind
嗨,我需要从后台做一些套接字通信,我用QtConcurrent::run来做这个,但是给了我警告。
QObject: Cannot create children for a parent that is in a different thread.
(Parent is MainWindow(0x7fff3e69f500), parent's thread is QThread(0x16f8070), current thread is QThread(0x17413d0)
这是密码,
MainWindow::MainWindow(QWidget *parent) :
QMainW
编辑:
我试着做你们在评论中告诉我的.
Citizen * c = new Citizen(this);
QThread thread;
c->moveToThread(&thread);
connect(&thread, SIGNAL(started()), c, SLOT(ProcessActions()));
thread.start();
这会产生更多的错误:
QThread: Destroyed while thread is still running
ASSERT failure in QThread::setTerminationEnabled():