C++ Qt进程插槽位于单独的线程中
我想实现一种机制,其中插槽将在单独的线程中处理。显然,这样的实现将不起作用,我需要一种方法来防止功能完成,同时仍然能够接收信号。如何实现这一点C++ Qt进程插槽位于单独的线程中,c++,multithreading,qt,C++,Multithreading,Qt,我想实现一种机制,其中插槽将在单独的线程中处理。显然,这样的实现将不起作用,我需要一种方法来防止功能完成,同时仍然能够接收信号。如何实现这一点 void connect() { t_ = std::thread(&myclass::start, this); } void start() { QTcpSocket *socket = new QTcpSocket; QObject::connect( socket, &QAbs
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);
}
在我的代码中,我发现在工作线程内创建套接字更简单。这个示例可能会帮助您:“显然这样的实现不会工作”:您认为这是为什么?