【发布时间】:2016-11-17 02:59:46
【问题描述】:
我目前正在玩Grand Central Dispatch,发现了一个名为DispatchWorkItem 的类。文档似乎有点不完整,所以我不确定是否以正确的方式使用它。我创建了以下 sn-p 并期望有所不同。我预计该项目将在调用cancel 后被取消。但由于某种原因,迭代仍在继续。任何想法我做错了什么?代码对我来说似乎很好。
@IBAction func testDispatchItems() {
let queue = DispatchQueue.global(attributes:.qosUserInitiated)
let item = DispatchWorkItem { [weak self] in
for i in 0...10000000 {
print(i)
self?.heavyWork()
}
}
queue.async(execute: item)
queue.after(walltime: .now() + 2) {
item.cancel()
}
}
【问题讨论】:
标签: swift grand-central-dispatch cancellation dispatchworkitem