[英]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.