2012-06-21 50 views
0

我們的一個需求可以通過每30分鐘運行一次NSTimer或後臺線程/作業來實現,後者每隔一分鐘輪詢特定應用程序的「狀態」。iPhone背景線程與定時器性能

但我想知道這個背景工作與NSTimer相比CPU密集程度如何,如果沒有太大的區別,那麼我們將爲後臺線程/工作去。

謝謝

+0

請注意,後臺CPU時間僅授予一些有限類型的iOS應用程序,或者只有幾分鐘的應用程序處於後臺,則應用程序將被凍結並且不會運行,直到用戶將其帶到前景。 – hotpaw2

+0

要回應什麼hotpaw2說,如果你不是這些有限類型的應用程序之一,然後忘記它。你有沒有先研究過這個領域?看看用戶界面背景模式(如果它們是你的應用程序的核心,那麼你只能使用它們,你不能僅僅使用它們來在後臺運行)。 – Gruntcakes

回答

0

線程非常輕。

實際上,您可以很好地在主線程上執行NSTimer輪詢,然後使用GCD使用內聯塊在專用串行隊列(在另一個線程上)上執行實際工作。這樣,您的代碼仍然非常易讀,而不會犧牲任何性能。

請注意,NSTimer不能保證精確的定時精度,但我認爲這並不重要。