dispatch_block
最显著的功能就是可以取消执行的代码块
基本函数
dispatch_block_t dispatch_block_create(dispatch_block_flags_t flags, dispatch_block_t block);
void dispatch_block_perform(dispatch_block_flags_t flags,DISPATCH_NOESCAPE dispatch_block_t block);
void dispatch_block_cancel(dispatch_block_t block);
long dispatch_block_wait(dispatch_block_t block, dispatch_time_t timeout);
void dispatch_block_notify(dispatch_block_t block, dispatch_queue_t queue,
dispatch_block_t notification_block);
long dispatch_block_testcancel(dispatch_block_t block);
函数理解
1.使用dispatch_create创建一个基于GCD的代码块,参数flag,指定代码块的执行环境,block是代码执行体。
关于flag的定义
DISPATCH_ENUM_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0)
DISPATCH_ENUM(dispatch_block_flags, unsigned long
DISPATCH_BLOCK_BARRIER = 0x01,
DISPATCH_BLOCK_DETACHED = 0x02,
DISPATCH_BLOCK_ASSIGN_CURRENT = 0x04,
DISPATCH_BLOCK_NO_QOS_CLASS = 0x08,
DISPATCH_BLOCK_INHERIT_QOS_CLAS