2009-02-23 46 views
1

我需要一個後臺進程來運行每分鐘左右。我不希望這個過程干擾其他應用程序的響應。這將成爲一個線程的好候選人嗎?如果是這樣,你會如何建議我設置線程 - 特別是,哪些類/方法可以很好地研究?需要後臺進程。線?

回答

2

這取決於背景過程的緊密程度。製作一個在後臺運行的單獨程序可能是一個更好的主意。

要開始使用,請查看Apple的guide to threads。多線程編程並不適合心臟病發作,因此您需要確保理解其背後的想法和注意事項,並可能首先嚐試其他解決方案。如果這個「後臺進程」不是很重,那麼在主線程中使用定時器幾乎肯定會消失。如果它與你的應用程序內部沒有緊密聯繫,那麼「工作者」程序可能是個好主意。

5

這聽起來像是一個相當不錯的人選NSOperationNSOperationQueue - 將您的工作單元打包爲一個操作並在必要時將其關閉。對於做「每分鐘左右」一點,NSTimer是不奇怪的選擇。

0

這確實取決於後臺進程在做什麼,它需要訪問哪些資源等等。如果你只是想調用someMethod:每一分鐘,然後使用NSTimer。如果你確實需要類似NSOperationQueue的東西,我會建議尋找這個替代方案來解決當前實現中的一些錯誤。

http://www.mikeash.com/?page=pyblog/raoperationqueue-an-open-source-replacement-for-nsoperationqueue.html

+0

蘋果已經固定,現在的bug,我們可以自由使用NSOperationQueue一次 - http://www.mikeash.com/pyblog/use-nsoperationqueue.html – 2010-02-12 22:18:55