我有一個Tkinter/ttk應用程序,可以分析每10-25毫秒到達的數據包。我現在的實現使用一個線程,每讀取一次套接字後更新30個StringVars,然後調用update_idletasks()更新相應的Entry小部件。我的應用程序在啓動後不超過30分鐘內崩潰。實時Tkinter/ttk條目小部件更新:線程+隊列或.after(1)?
搜索,發現Tk是不是真正線程安全的,並且我有兩個主要的選擇:
使用一個線程+隊列。
使用功能+。經過(1,函數)。
的UI做多一點開始/停止更新,並提供用於顯示的條目小部件。
在該系統中的主要的等待是套接字讀,它具有2×的超時的期望的分組速率(因此它不能永遠塊)。
在這種情況下,你會喜歡的方式#1或#2?
我傾向於#2它的簡單,但我不知道是否有任何Tk的陷阱沿該路徑等。當我等待社區智慧時,我可能會嘗試兩種方式。
如果我有更復雜的用戶界面,我會同意! – BobC 2013-04-29 16:03:30