假设我有一个绑定到主线程的托管对象上下文,并且我调用[mainContext performBlock:block]
了主线程。会同步运行还是仍然计划并在以后运行?
问问题
676 次
1 回答
3
假设您的意思是NSMainQueueConcurrencyType
(而不是NSConfinementConcurrencyType
),调用的performBlock:
行为类似于dispatch_async
,即您的块将被排入队列并且不会立即执行。
您可以轻松地验证这一点:
NSLog(@"before block");
[self.managedObjectContext performBlock:^{
NSLog(@"in block");
}];
NSLog(@"after block");
这将打印(按该顺序):
before block
after block
in block
如果需要同步执行块,则必须同时使用performBlockAndWait:
这两种基于队列的并发类型。
于 2013-01-27T11:22:28.103 回答