如果不是,该如何去结束正在进行还没有完成的任务?
1
chipmuck 2017 年 6 月 28 日
NSOperation cancel
or NSOperationQueue cancelAllOperations |
4
paradoxs 2017 年 6 月 28 日
正在执行的任务无法取消, 你可以在任务内做一个 isStop 之类的标记..
|
8
xx314327475 2017 年 6 月 28 日
@C90 GCD 不可以 NSOperation 可以,具体看一楼
|
9
chipmuck 2017 年 6 月 28 日 |
11
C90 OP @xx314327475 没有解决
|
16
paradoxs 2017 年 6 月 28 日
|
17
zqqf16 2017 年 6 月 28 日
可以试试类似 pthread_cancel 的方法,不知道会不会对 GCD 管理的线程池有影响~
|
23
a412739861 2017 年 6 月 28 日
耗时不应该是扔到后台线程操作么?
NSOperation 自带的 cancel,但是似乎也只是个标记。如果是自己实现的 NSOperation,也就是执行过程中,检查 cancel 标记,如果有,则不执行,任务已经执行好像都没用了,顶多不处理后续结果。 GCD 你拿一个变量做标记也没问题吧。 以上都是执行前判断似乎。 |
24
C90 OP @a412739861 我调的是静态库的一个函数,没有立 flag 的机会,你说的这个不能解决,最后是用 17 楼的方法解决的
|
25
DingSoung 2017 年 6 月 30 日
停不了,除非你线程挂掉
|
26
NUT 2017 年 9 月 16 日
OP 的话 可以设置 Status 的状态,这个参考下 af1.x 的 代码。GCD 是没有停止的接口。 所以要保证操作的幂等性。
|