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