【发布时间】:2022-10-04 16:31:11
【问题描述】:
我试图弄清楚在异步任务中我在哪个线程或运行循环上。如何从任务中获取线程或运行循环?
Task {
do {
print("line: ", #line, Thread.current)
let image = try await self.fetchImage()
print("line: ", #line, Thread.current)
} catch {
let fetch: FetchError = error as! FetchError
print("line: ", #line, Thread.current)
}
print("line: ", #line, Thread.current)
}
print("line: ", #line)
当我尝试我的典型方法时,我得到:
// Class property 'current' is unavailable from asynchronous contexts; Thread.current cannot be used from async contexts.; this is an error in Swift 6.
它仍然运行,但警告让我相信我不能相信结果。
【问题讨论】:
-
看看仪器。在 Xcode 14 中,线程的可视化比
print行方便得多。
标签: swift asynchronous async-await