如果我有一个dispatch_group
类属性:dispatch_group_notify块是否对dispatch_group_t的生命周期持续存在?
@property (nonatomic, readonly) dispatch_group_t _serialGroup;
,我有一个块,我总是希望每当组完成名为:
dispatch_group_notify(self._serialGroup, self._serialQueue, ^{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//...do some stuff...
});
});
可我只是在的动初始化定义dispatch_group_notify
dispatch_group
曾经一次,每当该组完成时它会被调用,或者每次向组添加项目时是否需要重新定义它?
Dang,这里的用例是我想在队列为空时调用一个'block()',但是我不断向队列中添加项目,所以我如何确保将'block()'添加到w /多次添加它? – Shizam 2013-05-11 22:24:34
我想不出一种简单而廉价的方式来使用当前的组API(但它将是一个值得提升的文件请求...)。你最简单的高效选项可能是用你自己的'dispatch_async()'包装器来调用'dispatch_group_async()',它通过'OSAtomicIncrement()'/'OSAtomicDecrement()'维护一个原子计数器并触发'dispatch_async()你的通知块在1-> 0转换(即当递减返回0时)。 – das 2013-05-11 23:04:15