1 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
有很多方法可以解決這個(gè)問題,但我建議將其中一個(gè)部分(GUI/Core)作為執(zhí)行所有初始化并啟動(dòng)另一部分的主要應(yīng)用程序。我建議為此使用核心。
這是您可以使用的示例架構(gòu),盡管您選擇的架構(gòu)高度依賴于應(yīng)用程序和您的目標(biāo)。
核心首先運(yùn)行,執(zhí)行初始化操作,包括啟動(dòng) GUI,設(shè)置 GUI 之間的通信(使用管道、套接字等),然后等待來自 GUI 的命令。如果 GUI 發(fā)出關(guān)閉信號(hào),核心可以執(zhí)行任何必要的清理操作,然后退出。在這種情況下,exe 的生命周期由 GUI 控制。(當(dāng)用戶點(diǎn)擊退出按鈕時(shí),GUI 會(huì)向核心發(fā)送一個(gè)信號(hào),讓核心知道它應(yīng)該退出)
如果內(nèi)核啟動(dòng) GUI,那么它可以為其設(shè)置 STDIN/STDOUT 管道并在 STDOUT 上偵聽命令,同時(shí)在 STDIN 上發(fā)送結(jié)果。您還可以采用服務(wù)器方法,讓核心在套接字上偵聽,GUI 向它發(fā)送請(qǐng)求并等待響應(yīng)。使用服務(wù)器方法,您可以擁有與串行管道不同的某種并發(fā)性,但我認(rèn)為它可能比管道慢(差異可能可以忽略不計(jì),但如果不知道您到底在做什么,很難說)。
- 1 回答
- 0 關(guān)注
- 157 瀏覽
添加回答
舉報(bào)