C# 异步调用aysnc await

一、基本概念

在C#中,async和await关键字用于异步编程。异步编程允许程序在执行I/O密集型操作时不会被阻塞,从而提高程序的性能和响应性。

async关键字用于定义异步方法,表明该方法可能包含await表达式,并且可以在其执行期间异步等待其他操作的完成。
await关键字用于等待异步操作完成,它只能在async方法内使用。await表达式会挂起当前方法的执行,直到其等待的操作完成,然后恢复方法的执行。


二、使用方法调用的方式

代码如下(示例):

using System;
using System.Collections.Generic;
using System.Threading.Tasks;

class Program
{
   
    static void Main(string[] args)
    {
   
        // 调用 test 方法,该方法是异步的,但不会阻塞主线程
        test();
        Console.WriteLine("main end..."); // 输出主函数结束的提示
        Console.ReadKey(); // 等待用户输入任意键,保持程序运行
    }

    // 异步方法 test
    static async void test()
    {
   
        // 异步等待 2000 毫秒(2 秒)
        await Task.Delay(2000);

        // 调用 stest 方法创建三个异步任务
        Task<int> Result0 = stest(100, 2000);
        Task<int> Result1 = stest(200, 3000);
        Task<int> Result2 = stest(300, 4000);

        // 创建一个任务列表,将三个异步任务添加到列表中
        List<Task<int>> tsklst = new List<Task<int>>();
        tsklst.AddRange(new List<Task<int>> {
    Result0, Result1, Result2 });

        // 输出开始执行异步任务的提示
        Console.WriteLine("delegateFuncTaskReturn has been Started {0}", 100);

        // 使用 Task.WhenAny 方法异步等待任务列表中的任意一个任务完成
        Task<int> firstCompletedTask = await Task.WhenAny(tsklst);

        // 输出异步任务完成后的提示
        Console.WriteLine(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值