c#

c# command能异步执行吗

小樊
81
2024-12-06 06:35:57
栏目: 编程语言

是的,C#中的命令(Command)可以异步执行。在C#中,你可以使用asyncawait关键字来实现异步编程。以下是一个简单的示例,展示了如何使用异步命令:

using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // 创建一个异步命令
        var command = new Command(async () =>
        {
            Console.WriteLine("开始执行异步任务...");
            await Task.Delay(3000); // 模拟耗时操作
            Console.WriteLine("异步任务完成!");
        });

        // 运行异步命令
        command.Execute();

        Console.WriteLine("按任意键继续...");
        Console.ReadKey();
    }
}

// 自定义命令类
public class Command
{
    private readonly Func<Task> _action;

    public Command(Func<Task> action)
    {
        _action = action;
    }

    public void Execute()
    {
        Task.Run(_action);
    }
}

在这个示例中,我们创建了一个名为Command的自定义类,它接受一个Func<Task>类型的参数。这个参数表示要执行的异步操作。Execute方法使用Task.Run来运行异步操作。

Main方法中,我们创建了一个异步命令,并传入一个匿名方法,该方法使用await Task.Delay(3000)模拟耗时操作。然后我们调用command.Execute()来运行异步命令。程序将在异步任务完成之前继续执行,并在完成后输出提示信息。

0
看了该问题的人还看了