fix:修正主动中断检查后崩溃问题。

This commit is contained in:
2025-11-15 23:48:30 +08:00
parent d73ddf7341
commit d0a0d06c1b
8 changed files with 65 additions and 3 deletions

View File

@@ -172,6 +172,11 @@ QVector<TransTask> CheckCondition::GetTasks() const
return tasks_;
}
bool CheckCondition::IsQuit() const
{
return isAlreadyInter_;
}
void CheckCondition::recvFrame(QSharedPointer<FrameBuffer> frame)
{
InfoMsg info = infoUnpack<InfoMsg>(frame->data);
@@ -199,12 +204,18 @@ void CheckCondition::interrupCheck()
if (!isAlreadyInter_) {
isAlreadyInter_ = true;
qWarning() << tr("中断文件校验......");
tasks_.clear();
emit sigCheckOver();
}
}
void CheckCondition::run()
{
if (tasks_.empty()) {
qInfo() << tr("没有需要校验的文件或者被中断......");
return;
}
qInfo() << tr("开始文件校验......");
isRun_ = true;
msg_.clear();
@@ -243,7 +254,11 @@ void CheckCondition::run()
return;
}
while (isRun_) {
QThread::msleep(10);
QThread::msleep(1);
if (isAlreadyInter_) {
qInfo() << tr("线程中断文件校验等待......");
return;
}
if (msg_.isEmpty()) {
continue;
}