GCD

token

1
2
3
4
/**
操作口令
*/
typedef __nonnull id <NSObject, NSCopying> ax_dispatch_operation_t;

可取消的dispatch_after

1
2
3
4
5
6
7
8
9
/**
可取消的延迟函数

@param delay 延迟时间
@param queue 线程
@param block 要执行的block
@return 操作口令(用于取消此操作)
*/
FOUNDATION_EXTERN ax_dispatch_operation_t ax_dispatch_cancellable(NSTimeInterval delay, dispatch_queue_t queue, void (^block)(void));

拥有冷却机制的dispatch

1
2
3
4
5
6
7
8
9
10
11
12
/**
拥有冷却机制的dispatch(可取消)

@param delay 延迟时间
@param cooldown 冷却时间
@param token 冷却计时的token,如果相同,则共享冷却时间
@param queue 指定线程
@param block 要执行的block
@param block_cooling 如果在冷却中要执行的block
@return 操作口令(用于取消此操作)
*/
FOUNDATION_EXTERN ax_dispatch_operation_t ax_dispatch_cooldown(NSTimeInterval delay, NSTimeInterval cooldown,id token, dispatch_queue_t queue, void (^block)(void), void (^ __nullable block_cooling)(void));

取消操作

1
2
3
4
5
6
/**
取消操作

@param token 操作口令
*/
FOUNDATION_EXTERN void ax_dispatch_cancel_operation(ax_dispatch_operation_t token);



评论

有疑问请前往本项目的【Issue】页面搜索问题,如果没有相关问题,点击【New issue】进行提问。