廣州海珠網(wǎng)站開發(fā)定制大數(shù)據(jù)分析師
QT中線程的退出分析
- 前言
- 開發(fā)環(huán)境
- 代碼的整改
- 第一次修改
- 第一次修改引起的問題
- 問題原因分析
- 解決方法
- 第二次修改
前言
軟件實(shí)際開發(fā)過程中有好幾處要實(shí)現(xiàn)這么一個(gè)功能:PC端軟件“應(yīng)用程序重啟” ,本來這是一段比較簡單的事情,但是因?yàn)橹貑④浖?bào)通信異常(錯(cuò)誤日志中有記錄通信異常的錯(cuò)誤)。此問題解決起來一直在禪道中反反復(fù)復(fù)的關(guān)閉了又打開,沒有得到徹底的解決。
基于這種情況,我參與了此問題的解決,在解決的過程中發(fā)現(xiàn)了一些有意思的東西,并把問題記錄了下來。
這也就是今天這遍文章的由來。
開發(fā)環(huán)境
系統(tǒng):windows 10 ,windows 11
QT版本:qt5.12.9
編譯器:MSVC (VS2017)
代碼的整改
第一次修改
原來是三處都寫了重啟應(yīng)用程序,把三次相同的代碼合為一處
int restartApp()
{QString program = QApplication::applicationFilePath();QStringList arguments = QApplication::arguments();if (!arguments.contains("restart")){arguments.append("restart");}QString wor