这是我的viewDidLoad
方法:
func viewDidLoad() {
// Stuff here
Task { @MainActor in
doSomeWorkOnMainThread1()
doSomeWorkOnMainThread2()
await doSomeBackgroundWork()
doSomeWorkOnMainThread3()
doSomeWorkOnMainThread4()
}
}
以下是我的方法,应该可以在后台线程上执行工作:
func doSomeBackgroundWork() async {
// can add some code here
// long image processing task
assert(!Thread.isMainThread)
// can add some code here
}
是否可以在后台线程上执行doSomeBackgroundWork
(不使用GCD),并在返回主线程之前等待它?
@MainActor
。确保方法在主actor上运行的方法是将该方法标记为@MainActor
。 - matt'async' call in a function that does not support concurrency
。 - XysdoSomeWorkOnMainThread3
本身就是一个主角色方法。当然我可能是错的,但这是我的经验。 - matt