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.");
}
}
创建和启动任务:
Task.Run 方法用于在后台线程池中启动一个新的任务。这里我们创建了一个名为 task1 的任务,它会打印一条消息,模拟一些工作(使用 Task.Delay 暂停两秒),然后完成。异步等待任务完成:
await 关键字可以让程序等待任务完成而不会阻塞主线程。这样可以提高程序的响应性。带有返回值的任务:
Task<int> 类型的任务会在完成时返回一个整数值。我们创建了 task2 来模拟一些工作,并在完成后返回 42。使用 await 获取任务的结果并打印出来。并行执行多个任务:
Task.WhenAll 来等待所有任务完成。这使得多个任务可以并行执行,从而提高效率。输出信息:
上一篇:c# 读取ini配置文件
下一篇:c#listview
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站