dispatch_after 是否将操作放入队列中?
Does dispatch_after place operation in a queue?
dispatch_after是否将操作放入队列中?也就是说,如果我 dispatch_after 多次连续调用,它们是否会像每个延迟后都放在 dispatch_async 中一样执行?
如果你看签名:
void dispatch_after ( dispatch_time_t when, dispatch_queue_t queue, dispatch_block_t block );
您可以看到您需要为 运行 上的块提供一个队列。文档说这个参数不能为 NULL。所以是的,操作放在一个队列上——你告诉它的队列 运行 on.
此外,正如文档所说,块是异步添加到队列中的,所以是的,它与延迟后的 dispatch_async 相同。
dispatch_after是否将操作放入队列中?也就是说,如果我 dispatch_after 多次连续调用,它们是否会像每个延迟后都放在 dispatch_async 中一样执行?
如果你看签名:
void dispatch_after ( dispatch_time_t when, dispatch_queue_t queue, dispatch_block_t block );
您可以看到您需要为 运行 上的块提供一个队列。文档说这个参数不能为 NULL。所以是的,操作放在一个队列上——你告诉它的队列 运行 on.
此外,正如文档所说,块是异步添加到队列中的,所以是的,它与延迟后的 dispatch_async 相同。