我想实现一种机制,其中插槽将在单独的线程中处理。显然这样的实现是行不通的,我需要一种方法来防止函数完成,同时仍然能够接收信号。如何实施?
void connect() {
t_ = std::thread(&myclass::start, this);
}
void start() {
QTcpSocket *socket = new QTcpSocket;
QObject::connect(
socket, &QAbstractSocket::connected, this,
[this]() {
//do1()
},
Qt::DirectConnection);
QObject::connect(
socket, &QAbstractSocket::disconnected, this,
[this]() {
//do2()
},
Qt::DirectConnection);
QObject::connect(
socket, &QAbstractSocket::readyRead, this,
[this]() {
//do3()
},
Qt::DirectConnection);
}