2012-06-08 44 views
2

爲什麼所有UIKit繪圖或AppKit繪圖都是在主線程上完成的嗎?爲什麼在主線程上繪製UI?

+0

可能的重複[爲什麼大多數UI框架單線程?](http://stackoverflow.com/questions/5544447/why-are-most-ui-frameworks-single-threaded) –

回答

2

「因爲多線程繪圖迅速變得太複雜/ conf使用「只是答案的一半。

多線程用戶界面管理的另一個主要障礙是事件處理。將事件處理混合爲併發繪圖,具體而言。您必須以某種方式混合繪圖和猴子在屏幕/鍵盤/鼠標上的混亂,同時有效地維護事務完整性的概念。

已經沒有併發性了。

5

這是在單個線程來完成所有的GUI圖形的主圖案, 訪問屏幕用於添加元素和附圖不是一個多線程進程

想象這樣你有10個線程,每個線程的情況下他們試圖繪製和或移動屏幕上的元素,這將創造聯合國確定的錯誤和問題,這將是非常難以處理和/或找到

而且在這裏閱讀更多Why are most UI frameworks single threaded?

+1

+1:簡單的答案,擊中當場。你實際上可以從幾個線程管理UI,但事情很容易失控。 –

+0

你可以用多線程方式實現GUI繪圖,但是我希望當你添加鎖定來阻止兩個線程試圖同時在相同的地方或不同的東西同時繪製同一個東西時,你將會以增加鎖定開銷和令人討厭的不確定錯誤爲代價而失去所有優勢。 – JeremyP

相關問題