目前尚不清楚文档中要做什么。我的理解是:
- 任务继承其参与者上下文,因此从这里的主体内部,它将成为主要参与者。
- 任何异步函数都可能进入协作线程池,因此它可能会脱离主线程运行。
我不确定的是,这个设定是否data
会隐含在主角身上。
struct ExampleView: View {
@State private var data = "Initial data"
var body: some View {
Text(data)
.onAppear {
Task {
let fetchedData = await fetchData()
await MainActor.run {
data = fetchedData // Explicitly updating on the main thread
}
}
}
}
func fetchData() async -> String {
// Simulate a network request or heavy computation
await Task.sleep(1_000_000_000) // 1 second delay
return "Updated data"
}
}