我试图理解以下代码为什么会引发断言。我想要在调用现场从主线程/主actor上调用 asyncFunc()
。我不想用@MainActor
修饰asyncFunc,因为我希望该函数是线程不可知的。
func asyncFunc() async -> String? {
dispatchPrecondition(condition: .onQueue(.main))
return "abc"
}
func callSite() {
Task { @MainActor in
await asyncFunc()
}
}
我的理解是 Task { @MainActor ...}
会在 MainActor/主线程上执行其后面的所有代码。