Skip to content

Why main thread cannot be used? Are there any restrictions? #140

@valeriyvan

Description

@valeriyvan

Following was tested on Ubuntu:

import DefaultBackend
import SwiftCrossUI
import Foundation

#if canImport(SwiftBundlerRuntime)
    import SwiftBundlerRuntime
#endif

@main
@HotReloadable
struct MainApp: App {
    var body: some Scene {
        WindowGroup("Main") {
            #hotReloadable {
                Button("Run Task") {
                    Task {
                        print("Task is running.")
                        Task { 
                            print("Task inside Task is running.")
                        }

                        // None of these ever runs. Why?
                        Task { @MainActor in
                            print("Task @MainActor is running")
                        }
                        
                        await MainActor.run {
                            print("MainActor.run is running")
                        }
                        
                        DispatchQueue.main.async {
                            print("DispatchQueue.main.async is running")
                        }
                    }
                }
            }
        }
        .defaultSize(width: 400, height: 200)
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions