BFTask
对我很好,但我有一个抱怨:我还没有看到你应该如何完成cancel
一项任务的工作示例。有关该主题的全部文档都可以在他们的 GitHub 页面上找到,其中只有一个低级部分,其中包括除我关心的部分之外的所有内容:如何取消任务。
// Somewhere else.
MYCancellationToken *cancellationToken = [[MYCancellationToken alloc] init];
[obj doSomethingComplicatedAsync:cancellationToken];
// When you get bored...
[cancellationToken cancel];
他们的代码片段后面是:
注意:取消令牌实现应该是线程安全的。
我想知道以下几点:
- 是否有充分的理由表明他们可能没有在接口本身上提供该
cancel
方法?BFTask
他们有一个属性表示任务是否被取消但没有办法取消它。 - 他们是否有充分的理由不包括本身的
cancellationToken(s)
属性BFTask
? - 执行是否
cancel
与任务本身强耦合?cancelAllOperations
或者在 的情况下是否可以进行一般实现NSOperationQueue
?