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