如何使用C# Task处理并发任务

   2024-09-30 3340
核心提示:在C#中,Task类是用于表示异步操作的一种方式创建并启动一个简单的任务:using System;using System.Threading.Tasks;class Prog

在C#中,Task类是用于表示异步操作的一种方式

创建并启动一个简单的任务:
using System;using System.Threading.Tasks;class Program{    static void Main(string[] args)    {        Task task = Task.Run(() =>        {            Console.WriteLine("Running a task on a separate thread.");        });        // 等待任务完成        task.Wait();    }}
使用asyncawait关键字处理异步方法:
using System;using System.Threading.Tasks;class Program{    static async Task Main(string[] args)    {        await RunAsyncTask();    }    static async Task RunAsyncTask()    {        await Task.Run(() =>        {            Console.WriteLine("Running an asynchronous task on a separate thread.");        });    }}
处理多个并发任务:
using System;using System.Threading.Tasks;class Program{    static async Task Main(string[] args)    {        Task task1 = Task.Run(() =>        {            Console.WriteLine("Running task 1 on a separate thread.");        });        Task task2 = Task.Run(() =>        {            Console.WriteLine("Running task 2 on a separate thread.");        });        // 等待所有任务完成        await Task.WhenAll(task1, task2);    }}
处理任务返回值:
using System;using System.Threading.Tasks;class Program{    static async Task Main(string[] args)    {        Task<int> task = Task.Run(() =>        {            Console.WriteLine("Running a task with return value on a separate thread.");            return 42;        });        int result = await task;        Console.WriteLine($"The result is: {result}");    }}
处理多个并发任务并获取结果:
using System;using System.Linq;using System.Threading.Tasks;class Program{    static async Task Main(string[] args)    {        Task<int>[] tasks = new[]        {            Task.Run(() =>            {                Console.WriteLine("Running task 1 on a separate thread.");                return 1;            }),            Task.Run(() =>            {                Console.WriteLine("Running task 2 on a separate thread.");                return 2;            })        };        // 等待所有任务完成并获取结果        int[] results = await Task.WhenAll(tasks);        Console.WriteLine($"The results are: {string.Join(", ", results)}");    }}

这些示例展示了如何使用C# Task类处理并发任务。请注意,为了确保代码的可读性和可维护性,建议使用asyncawait关键字来处理异步操作。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号