[英]iPhone SDK Background threads calling other methods
我是一個看似簡單的問題,似乎無法找到答案(這阻礙了我的應用程序)。
我有一個運行特定方法的后台線程:
-(void)processImage:(UIImage *)image {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
//Process image here in the background here
[pool drain];
}
這很好用,但是當我想從已經后台的方法中調用另一個方法時,我的問題就來了。 此通話是否保留在后台? 我是否需要添加NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
和[pool drain];
使新方法也可以在后台運行?
任何建議都將非常有幫助。 我對此有些困惑。
非常感謝,布雷特
它會留在后台,與它被調用的線程相同。
需要考慮的一些線程注意事項:
您不需要添加另一個自動釋放池,您已經擁有的就足夠了。 是的,您從該線程發起的所有調用都保留在該線程中,因此也“在后台”運行。 例外是使用“ performSelectorOnMainThread:”,這當然會使給定的選擇器在主線程上執行:-)如果要調用GUI方法(例如在UIImageView上設置圖像),則應確保執行所以在主線程上。 請參閱有關“ performSelectorOnMainThread:waitUntilDone:”的文檔(很抱歉,沒有給您提供鏈接,請在我的iPad上輸入此鏈接)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.