как упоминалось в этой статье
Если приостановки не произойдет, пауза не произойдет, и ваша функция продолжит работать с той же эффективностью и временем, что и синхронная функция.
И последнее. часть имеет важный побочный эффект: использование await не приведет к тому, что ваш код будет ждать прохождения одного цикла выполнения, прежде чем продолжить.
Однако я провел тест и кажется, это так не работает
Код: Выделить всё
struct ContentStructure: View {
var body: some View {
CustomView()
.task {
print("task start thread = \(Thread.current)")
await fakeExpensiveWork()
print("task end thread = \(Thread.current)")
}
}
}
func fakeExpensiveWork() async {
print("fake expensive work thread = \(Thread.current)")
}
struct CustomView: View{
init(){
print("init thread = \(Thread.current)")
}
var body: some View{
List{
ForEach(1..
Подробнее здесь: [url]https://stackoverflow.com/questions/79147229/why-swift-always-suspend-when-running-async-function-even-if-there-is-no-asynchr[/url]
Мобильная версия