我看到了这个:
如果你在应用程序中创建了一个次要线程,你需要为其提供自己的自动释放池。自动释放池和其中包含的对象在
iOS 5开发者食谱书
中有更详细的介绍。
我正在使用ARC编译。我已经创建了许多后台线程,似乎一切都挺好。我的所有后台线程都没有长时间运行。那些对象会被主线程的自动释放池之类的东西释放吗?或者怎么样?
这是我用来调用后台线程的代码:
+(void)doBackground:(void (^)())block
{
//DISPATCH_QUEUE_PRIORITY_HIGH
//dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND,0), ^{
dispatch_async(dispatch_get_global_queue(-2,0), ^{
block();
});
}
我应该把它改成什么?
+(void)doBackground:(void (^)())block
{
//DISPATCH_QUEUE_PRIORITY_HIGH
//dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND,0), ^{
dispatch_async(dispatch_get_global_queue(-2,0), ^{
@autoreleasepool{
block();
}
});
}