diff --git a/specwidget.cpp b/specwidget.cpp index f04ac2914415cdfb08e6916843ef015612132720..f4418b5c45a9446bb98668b6da2b60eb06c0ac97 100644 --- a/specwidget.cpp +++ b/specwidget.cpp @@ -382,6 +382,7 @@ void specWidget::initTx() run_TxIO(); }); + m_dataproduce_ok = false; read_count = m_rx_bufsz/2; m_tx_points = 0; //读取文件 @@ -438,14 +439,20 @@ void specWidget::initTx() } } else + { + if (!m_dataproduce_ok) + m_dataproduce_ok = true; QThread::msleep(10); + } } if (fIn.isOpen()) fIn.close(); }); - m_txth->start(); m_readth->start(); + while (!m_dataproduce_ok && ! stop_signal_called) + QThread::msleep(10); + m_txth->start(); } diff --git a/specwidget.h b/specwidget.h index 8e15a5ca593829887ccc6265b05421273b6a58dd..773e549243dab15794ee6ddab37dc2b7a57e76be 100644 --- a/specwidget.h +++ b/specwidget.h @@ -110,6 +110,7 @@ private: unsigned long long read_count; std::atomic m_bSaveToFile; std::atomic m_bPlayFromFile; + std::atomic m_dataproduce_ok; QString m_strFolder; QString m_strFolderPlay; //stdout reader