我必須同時啓動多個進程 - AVAudioPlayer的播放,定時器和文件寫入操作。iPhone - 同時啓動兩個進程
如果我只是在一個方法中寫入它們,它們會一個接一個地執行,所有操作的開始都會有一點滯後。
任何想法?感謝任何幫助。
謝謝。
我必須同時啓動多個進程 - AVAudioPlayer的播放,定時器和文件寫入操作。iPhone - 同時啓動兩個進程
如果我只是在一個方法中寫入它們,它們會一個接一個地執行,所有操作的開始都會有一點滯後。
任何想法?感謝任何幫助。
謝謝。
你爲什麼不使用線程?
您可以通過使用容易做到這一點:
- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg
或使用NSOperation
用NSOperationQueue
。
查看this question瞭解更多詳情。
注:
添加太多的併發內安排的NSTimer可以在這裏是錯誤的做法。您可能想調查設置定時器並在主線程上播放音頻文件,同時在後臺線程上執行阻止文件寫入調用。這裏的重要概念是避免阻塞主線程中的調用,特別是在處理文件或網絡I/O時。
由於iPhone是單CPU設備,因此您會希望避免創建太多的額外線程,並且多個線程會導致更多的資源消耗。
如果你只做了一次,performSelectorInBackground是最簡單的代碼。但是,如果你做了很多,它不是最佳的。我會建議NSOperation路線。 – 2009-11-18 12:54:09
非常感謝你們。 – lostInTransit 2009-11-18 14:11:43