如果队列不为空,则跳过新任务。 Swift
Skip new tasks if the queue is not empty. Swift
我有一段代码每秒向 运行 长任务发送 5-6 次垃圾邮件。每个任务都需要一些时间才能完成。我想在执行 1 时忽略所有其他任务。在它完成后,一个新的应该取代它。
Swift 4.2 中有许多用于并发的工具。什么最有效?
要解决此问题,您可以使用GCD 或Operation。如果您有描述,我会使用 Operation。使用这种方法,您可以对正在执行(停止、取消....)的 Operation 进行更加用户友好的控制。
小例子:
let queue = OperationQueue()
queue.maxConcurrentOperationCount = 1
queue.addOperation { print("") }
queue.addOperation { print("") }
queue.addOperation { print("") }
在这种情况下,操作是一个一个执行的。
我有一段代码每秒向 运行 长任务发送 5-6 次垃圾邮件。每个任务都需要一些时间才能完成。我想在执行 1 时忽略所有其他任务。在它完成后,一个新的应该取代它。
Swift 4.2 中有许多用于并发的工具。什么最有效?
要解决此问题,您可以使用GCD 或Operation。如果您有描述,我会使用 Operation。使用这种方法,您可以对正在执行(停止、取消....)的 Operation 进行更加用户友好的控制。
小例子:
let queue = OperationQueue()
queue.maxConcurrentOperationCount = 1
queue.addOperation { print("") }
queue.addOperation { print("") }
queue.addOperation { print("") }
在这种情况下,操作是一个一个执行的。