当我断开服务器连接时,应用程序抛出错误提示
QCoreApplication :: sendEvent中的ASSERT失败:“无法将事件发送到 不同线程拥有的对象。当前线程为be0cf8。接收者 ”(类型为'QNativeSocketEngine')是在线程cc39d4中创建的”
我不明白导致问题的原因
我的应用程序中正在运行三个线程,
MainWindow.cpp:
$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("P:", "\\192.168.1.2\Temp\BP", $False, "008", "25")
if(Test-Path -Path "P:"){
Write-Host "Connected"
}
else
{
Write-Host "Try Again"
$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("P:", "\\$Get_IP\Temp\BP", $False, "$008", "$25")
}
$Next = "Do Next Process"
第一个线程:
一些套接字操作,例如send,receive,connecttotarget,与主机断开连接都在这里完成
第二个线程:
我将从第二个线程连接到服务器。
第三线程:
在这种情况下,我将连续发送一些命令并从服务器接收一些数据。 我正在使用while(var),一旦建立连接,此var值将更新为1,而当服务器断开连接时var值将更新为0(zero)。与服务器建立连接后,线程3将启动。
这些是我的顺序。现在我的问题是服务器断开连接时,我没有收到应用程序发出的断开连接信号。
这是我的信号和插槽
connect(&obj,&QTcpSocket :: disconnected,this,&MainWindow :: TargetConnectionStatus,Qt :: UniqueConnection);
void MainWindow::on_pushbutton_clicked()
{
ui->pushbutton->setDisabled(true);
thread1.m_TargetIpAddress.setAddress(IP Address);
thread1.m_iTargetPort = ui->TargetPortNumber->text().toInt();
thread1.start();
thread2.start();
}
由于未发出此插槽,因此线程正在连续运行,并且突然发生断言失败,该如何解决此错误。