[問題] GUI與主程式的結合

看板C_Sharp作者 (沒有怎麼辦)時間17年前 (2006/12/29 07:03), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
修區網有一個project 做dhcp server 目前是有分做GUI的 另外還有寫主程式的 目前遇到一個問題是如何把GUI和主程式結合 兩者是有一些共同的變數的 這些變數放在主程式中 主要問題是gui和主程式都會修改這些變數 我們目前做法是 gui和主程式都各有一份變數 當程式開啟時 GUI會讀入一個資料檔,再手動設定一些東西 並且按下「開始」後 會開一個thread跑主程式,主程式這邊有一些function,讓gui可以利用這些 function把資料傳過來,如addxxx() deletexxx() modifyxxx()。 而主程式也是利用gui那邊的一些函式把主程式這裡的一些物件傳過去。 例如當一個client端連過來,主程式處理完會發一個dhcppacket給他,如此會變動主程式 中的變數等,同時也要改變gui上的顯示(新增一個client端),這裡我們的做法是 在主程式中呼叫gui那邊的addyyy() deleteyyy() modifyyyy()。 如此又產生一個新問題,因為是由gui來呼叫主程式啟動的,gui看的到addxxx(), 但主程式看不到gui的addyyy() deleteyyy() modifyyyy()。 後來我們又想說把gui那邊的addyyy()直接擺到主程式中,而gui在呼叫主程式就同時把 gui那些欄位表格的ref丟過來,因此就可以在主程式中直接修改gui。 同樣的,又有問題了。gui是由gui的main thread所建,而主程式是另一個thread, 要去修改gui必須要處理thread間的問題。這裡是有辦法解決的。 但是我想知道是否有更好的架構, 或者一般主程式和gui的結合是否有某種一般性的良好寫法呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.58.5.192
文章代碼(AID): #15b4qrD8 (C_Sharp)
文章代碼(AID): #15b4qrD8 (C_Sharp)