是的,C#中的命令(Command)可以異步執行。在C#中,你可以使用async
和await
關鍵字來實現異步編程。以下是一個簡單的示例,展示了如何使用異步命令:
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()
來運行異步命令。程序將在異步任務完成之前繼續執行,并在完成后輸出提示信息。