我\xe2\x80\x99m 正在学习Swift async、await、 。@MainActor
我想运行一个很长的过程并显示进度。
\nimport SwiftUI\n\n@MainActor\nfinal class ViewModel: ObservableObject {\n @Published var count = 0\n\n func countUpAsync() async {\n print("countUpAsync() isMain=\\(Thread.isMainThread)")\n for _ in 0..<5 {\n count += 1\n Thread.sleep(forTimeInterval: 0.5)\n }\n }\n\n func countUp() {\n print("countUp() isMain=\\(Thread.isMainThread)")\n for _ in 0..<5 {\n self.count += 1\n Thread.sleep(forTimeInterval: 0.5)\n }\n }\n}\n\nstruct ContentView: View {\n @StateObject private var viewModel = ViewModel()\n\n var body: some View {\n VStack {\n Text("Count=\\(viewModel.count)")\n .font(.title)\n\n Button("Start Dispatch") {\n DispatchQueue.global().async {\n …Run Code Online (Sandbox Code Playgroud)