Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# task用法

作者:只影天涯   发布日期:2026-02-02   浏览:75

using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // 创建一个Task并启动它
        Task task1 = Task.Run(() =>
        {
            Console.WriteLine("Task 1 is running...");
            // 模拟一些工作
            Task.Delay(2000).Wait();
            Console.WriteLine("Task 1 completed.");
        });

        // 使用async/await来等待任务完成
        await task1;

        // 创建一个返回结果的Task
        Task<int> task2 = Task.Run(() =>
        {
            Console.WriteLine("Task 2 is running...");
            // 模拟一些工作
            Task.Delay(1500).Wait();
            Console.WriteLine("Task 2 completed.");
            return 42;
        });

        // 等待任务完成并获取结果
        int result = await task2;
        Console.WriteLine($"Result from Task 2: {result}");

        // 并行执行多个任务
        Task[] tasks = new Task[]
        {
            Task.Run(() => Console.WriteLine("Task 3")),
            Task.Run(() => Console.WriteLine("Task 4")),
            Task.Run(() => Console.WriteLine("Task 5"))
        };

        // 等待所有任务完成
        await Task.WhenAll(tasks);

        Console.WriteLine("All tasks have completed.");
    }
}

解释说明

  1. 创建和启动任务

    • Task.Run 方法用于在后台线程池中启动一个新的任务。这里我们创建了一个名为 task1 的任务,它会打印一条消息,模拟一些工作(使用 Task.Delay 暂停两秒),然后完成。
  2. 异步等待任务完成

    • 使用 await 关键字可以让程序等待任务完成而不会阻塞主线程。这样可以提高程序的响应性。
  3. 带有返回值的任务

    • Task<int> 类型的任务会在完成时返回一个整数值。我们创建了 task2 来模拟一些工作,并在完成后返回 42。使用 await 获取任务的结果并打印出来。
  4. 并行执行多个任务

    • 可以通过创建一个包含多个任务的数组,并使用 Task.WhenAll 来等待所有任务完成。这使得多个任务可以并行执行,从而提高效率。
  5. 输出信息

    • 整个过程中,程序会输出每个任务的运行状态和结果,最终确认所有任务都已完成。

上一篇:c# 读取ini配置文件

下一篇:c#listview

大家都在看

c# 二进制

c# datatable group by

c# tcp client

c# type.gettype

c# sqlconnection

c# string.format 小数位数

.net和c#

c#获取系统时间

c#游戏开发

c#网络编程

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站