以下哪一项:
public static let barrier: DispatchWorkItemFlags
public static let detached: DispatchWorkItemFlags
public static let assignCurrentContext: DispatchWorkItemFlags
public static let noQoS: DispatchWorkItemFlags
public static let inheritQoS: DispatchWorkItemFlags
public static let enforceQoS: DispatchWorkItemFlags是默认的DispatchWorkItemFlag吗?
发布于 2019-03-06 20:35:37
这些选项中的每一个都有自己的含义,没有一个默认选项。
因此,您可能会问DispatchWorkItem的init(qos:flags:block:) (item的属性)或其notify(qos:flags:queue:execute:)方法的默认参数是什么。
因此,对于文档,默认参数为空OptionSet。
发布于 2019-03-06 20:49:21
快速回答:全部,都不是。
DispatchWorkItemFlags 是一个选项集,用于配置DispatchWorkItem value的行为,包括其服务质量级别以及是创建屏障还是生成新的分离线程。
当您将作业添加到队列中时,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: DispatchWorkItemFlagsDISPATCH_BLOCK_ASSIGN_CURRENT指示应该为分派块分配创建块对象时当前的执行上下文属性。…
DISPATCH_BLOCK_BARRIER指示调度块在提交到DISPATCH_QUEUE_CONCURRENT队列时应充当屏障块。…
DISPATCH_BLOCK_DETACHED指示分派块应该与当前执行上下文属性(如QoS类、os_activity_t和当前IPC请求的属性,如果有的话)不关联地执行。…
我希望它能帮上忙!
祝你有愉快的一天!
发布于 2019-03-06 21:08:32
通常的答案在文档中:)
初始化(qos: DispatchQoS = .unspecified,标志: DispatchWorkItemFlags = [],block:@escaping () ->空)
https://stackoverflow.com/questions/55023191
复制相似问题