当做这样的事情时:
import RxSwift
let queue = DispatchQueue(label: "com.myapp.services")
let scheduler = SerialDispatchQueueScheduler(queue: queue, internalSerialQueueName: ???)
它要我提供一个 internalSerialQueueName
值。我想我只会使用 queue.label
来保持一致,但我看到人们只是使用 ""
作为 internalSerialQueueName
.
那么,internalSerialQueueName
值的正确用法是什么?
最佳答案
如果我们检查 init 的实现:
/**
Constructs new `SerialDispatchQueueScheduler` named `internalSerialQueueName` that wraps `queue`.
- parameter queue: Possibly concurrent dispatch queue used to perform work.
- parameter internalSerialQueueName: Name of internal serial dispatch queue proxy.
- parameter leeway: The amount of time, in nanoseconds, that the system will defer the timer.
*/
public convenience init(queue: DispatchQueue, internalSerialQueueName: String, leeway: DispatchTimeInterval = DispatchTimeInterval.nanoseconds(0)) {
// Swift 3.0 IUO
let serialQueue = DispatchQueue(label: internalSerialQueueName,
attributes: [],
target: queue)
self.init(serialQueue: serialQueue, leeway: leeway)
}
你会看到:
internalSerialQueueName
用作队列调度程序运行的名称queue
参数仅用作调度器内部队列的目标
您可以在 target parameter in DispatchQueue 中阅读有关目标队列的更多信息
关于swift - 从现有 DispatchQueue 创建 SerialDispatchQueueScheduler 时,internalSerialQueueName 的正确用法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42657459/