我读到这个:
如果您曾经在应用程序中创建辅助线程,则需要为其提供自己的自动释放池。自动释放池及其包含的对象在中进一步讨论
在 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();
}
});
}