当我将作业添加到队列中时,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
I know barrier使得工作不能与其他人同时执行,但我不知道是什么detached and 分配当前上下文是,苹果没有提供任何关于它们的描述,所以谁能告诉我这件事。
您可以在以下位置阅读有关它们的信息dispatch_block_flags_t manual https://developer.apple.com/documentation/dispatch/dispatch_block_flags_t:
DISPATCH_BLOCK_ASSIGN_CURRENT
指示调度块应该
被分配当前的执行上下文属性
创建块对象的时间。 ……
DISPATCH_BLOCK_BARRIER
指示调度块应该充当
提交到 DISPATCH_QUEUE_CONCURRENT 队列时的屏障块。 ……
DISPATCH_BLOCK_DETACHED
指示应该执行调度块
与当前执行上下文属性(例如 QoS)解除关联
当前 IPC 请求的 class、os_activity_t 和属性,如果
任何。 ……
我只复制了每个标志文档中的第一句话。单击链接了解更多详细信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)