给输出加把锁,同1时刻只能有一条线程输出,这样程序就不会突然暴毙了
This commit is contained in:
+33
-5
@@ -25,11 +25,23 @@ Widget::Widget(QWidget *parent)
|
||||
|
||||
|
||||
|
||||
main_thread = new QThread(this);
|
||||
main_thread->start();
|
||||
//main_thread = new QThread(this);
|
||||
//main_thread->start();
|
||||
connect(ui->stard_scan, &QPushButton::pressed, [=]()
|
||||
{
|
||||
|
||||
|
||||
if(scan_flag==0)
|
||||
{
|
||||
scan_flag=1;
|
||||
|
||||
ui->IP_list->setReadOnly(true);
|
||||
ui->port_list->setReadOnly(true);
|
||||
ui->timeout->setReadOnly(true);
|
||||
ui->threads->setReadOnly(true);
|
||||
ui->stard_scan->setText("停止");
|
||||
|
||||
|
||||
dispatch* dispatch_thread;
|
||||
dispatch_thread = new dispatch;
|
||||
|
||||
@@ -40,15 +52,31 @@ Widget::Widget(QWidget *parent)
|
||||
dispatch_thread->now_thread_num = 0;
|
||||
dispatch_thread->timeout = ui->timeout->value();
|
||||
dispatch_thread->the_bar=ui->type_bar;
|
||||
dispatch_thread->main_thread = main_thread;
|
||||
dispatch_thread->moveToThread(main_thread);
|
||||
//dispatch_thread->main_thread = main_thread;
|
||||
//dispatch_thread->moveToThread(main_thread);
|
||||
dispatch_thread->start();
|
||||
connect(dispatch_thread, &dispatch::dispatch_finish, [=]()
|
||||
{
|
||||
qDebug() << "dispatch_finish";
|
||||
disconnect(dispatch_thread);
|
||||
//delete dispatch_thread;
|
||||
});
|
||||
}else
|
||||
{
|
||||
//dispatch_thread->exit();
|
||||
ui->IP_list->setReadOnly(false);
|
||||
ui->port_list->setReadOnly(false);
|
||||
ui->timeout->setReadOnly(false);
|
||||
ui->threads->setReadOnly(false);
|
||||
ui->stard_scan->setText("开始扫描");
|
||||
scan_flag=0;
|
||||
}
|
||||
|
||||
});//'scan button pass'
|
||||
|
||||
|
||||
|
||||
|
||||
connect(ui->IP_list,&QTextEdit::textChanged,this, &Widget::auto_edit);
|
||||
|
||||
|
||||
@@ -56,7 +84,7 @@ Widget::Widget(QWidget *parent)
|
||||
|
||||
Widget::~Widget()
|
||||
{
|
||||
main_thread->exit();
|
||||
//main_thread->exit();
|
||||
//delete main_thread;
|
||||
delete ui;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user