仅允许某些操作并发

时间:2015-04-23 13:35:10

标签: objective-c concurrency nsoperation nsoperationqueue

我想知道是否可以在NSOperationQueue范围内与其他人同时进行操作。例如:

  • 操作A - 与所有
  • 不兼容
  • 操作B - 可以与C(但不是自身)并发
  • 操作C - 可以与B(但不是自身)并发

可以形成如下队列:

    B           B
A - | - B - B - | - A
    C           C

NSOperationQueue是否可以使用这种特定的并发条件?

concurrent的{​​{1}}属性具有误导性,因为它宁可指定操作异步执行其任务(实际上现在从10.6开始被忽略)。

1 个答案:

答案 0 :(得分:0)

对于依赖项的使用,这似乎是一个很好的情况。使用NSOperation,可以在添加另一个操作之前检查队列中的最后一个操作。

如果 A ,如果新操作是 A B C

如果 B ,如果新操作是 B A ,则依赖于新操作。

如果 C ,如果新操作是 C A ,则依赖于新操作。