我的代码如下所示,我试图在异步块内调用 cpu 密集型方法,但该方法并不总是被调用,有时会被调用,有时不会。
-(IBAction) aMethod
//some code
dispatch_async(backgroundQueue, ^{
NSArray *allFiles = [appDel getAllFiles];
totalFilesCount = [allFiles count];
});
//some code
}
backgroundQueue
是在接口文件中声明并在viewDidLoad
方法中创建的实例变量:
backgroundQueue = dispatch_queue_create("com.myapp.backgroundprocessing", NULL);
该方法getAllFiles
有时被调用,有时不被调用(用断点检查),我将它调用到 dispatch_async 块中的原因是返回结果需要很长时间。我的方法似乎有什么问题,尽管它是 CPU 密集型方法,但是否应该在主线程中调用它?