spawn

Function spawn 

Source
pub fn spawn<Fut>(future: Fut) -> Task<Fut::Output>
where Fut: Future + Send + 'static, Fut::Output: Send,
Expand description

Creates a new task with default priority.

This is the primary function for spawning async tasks. The task will be executed with default priority using platform-native scheduling.

§Arguments

  • future - The future to execute asynchronously

§Returns

A Task handle that can be awaited to retrieve the result

§Examples

use native_executor::spawn;

let task = spawn(async {
    // Your async work here
    42
});
Examples found in repository?
examples/simple_task.rs (lines 8-15)
4fn main() {
5    println!("Starting example");
6
7    // Spawn a task with default priority
8    spawn(async {
9        println!("Task started");
10
11        // Wait for 1 second
12        Timer::after_secs(1).await;
13
14        println!("Task completed after 1 second");
15    })
16    .detach();
17
18    // Keep the main thread alive
19    std::thread::sleep(Duration::from_secs(2));
20
21    println!("Example completed");
22}
More examples
Hide additional examples
examples/priority.rs (lines 6-10)
4fn main() {
5    // Spawn a default priority task
6    spawn(async {
7        println!("Default priority task started");
8        Timer::after_secs(1).await;
9        println!("Default priority task completed");
10    })
11    .detach();
12
13    // Spawn a background priority task
14    spawn_with_priority(
15        async {
16            println!("Background priority task started");
17            Timer::after_secs(1).await;
18            println!("Background priority task completed");
19        },
20        Priority::Background,
21    )
22    .detach();
23
24    // Keep the main thread alive
25    std::thread::sleep(Duration::from_secs(2));
26}
examples/timers.rs (lines 8-27)
7fn main() {
8    spawn(async {
9        println!("Starting timers example");
10
11        // Use the Timer API
12        println!("Waiting for 500ms...");
13        Timer::after(Duration::from_millis(500)).await;
14        println!("500ms elapsed");
15
16        // Use the seconds convenience method
17        println!("Waiting for 1 second...");
18        Timer::after_secs(1).await;
19        println!("1 second elapsed");
20
21        // Use the sleep convenience function
22        println!("Sleeping for 2 seconds...");
23        sleep(2).await;
24        println!("2 seconds elapsed");
25
26        println!("Timers example completed");
27    })
28    .detach();
29
30    // Keep the main thread alive
31    std::thread::sleep(Duration::from_secs(4));
32}