2014-01-20 24 views
0

我在iOS應用程序中進行激烈的數據處理,我有一個「取消」UIButton。用戶可以按下取消按鈕,但由於應用程序對處理的影響很小,所以點擊通常不會被識別約10秒。但是,我可以點擊設備上的主頁按鈕,手機立即進入主屏幕。激烈的數據處理阻止了UI交互的生效

我假設主頁按鈕被Apple編程爲具有最高優先級。有什麼方法可以讓我的應用程序中的取消按鈕具有「最高優先級」,高於laggy動畫和屏幕UI更新以及滯後數據處理?我認爲這將與GCD有關 - 調度級別?

+1

對於數據處理任務,您可以給予低優先級('DISPATCH_QUEUE_PRIORITY_BACKGROUND') –

+0

請將開始後臺進程的代碼和取消它的代碼發佈。你不能提高你的UI的優先級(它總是在主線程上運行)。 –

+1

您是否已經在使用GCD(或類似的)將您的處理放在後臺?如果沒有,那就這樣做。 –

回答

1

主隊列用於所有主UI接口和動畫。這聽起來像你正在主線程上進行數據處理。這可能不是您想要的路徑,但您可能會考慮將您的數據處理任務移至與GCD分開的線程,而不是試圖讓UIButton獲得更高的優先級。