当我将作业添加到队列中时,DispatchWorkItemFlags为我们提供了几个选择选项
public func sync<T>(flags: DispatchWorkItemFlags, execute work: () throws -> T) rethrows -> T
public static let barrier: DispatchWorkItemFlags
public static let detached: DispatchWorkItemFlags
public static let assignCurrentContext: DispatchWorkItemFlags
我知道障碍会使作业无法与其他人同时执行,但我不知道分离和 assignCurrentContext 是什么,Apple并没有提供任何关于它们的描述,所以谁可以告诉我这个。
答案 0 :(得分:1)
您可以在dispatch_block_flags_t
manual:
DISPATCH_BLOCK_ASSIGN_CURRENT
表示调度块应该 被赋予当前的执行上下文属性 块对象的创建时间。 ...
DISPATCH_BLOCK_BARRIER
表示调度块应该充当 提交到DISPATCH_QUEUE_CONCURRENT队列时阻塞块。 ...
DISPATCH_BLOCK_DETACHED
表示应执行调度块 与当前执行上下文属性(例如QoS)无关 class,os_activity_t和当前IPC请求的属性,如果 任何。 ...
我只复制了每个旗帜文件中的第一句话。点击链接了解更多详情。