在C#中,可以使用async和await关键字来处理异步方法。如果想要创建一个不等待异步方法返回的任务,可以使用Task.Run方法来启动一个新的任务,并在其中调用异步方法。然后,可以使用Task.ContinueWith方法来指定一个回调函数,该函数将在异步方法完成时执行。以下是一个示例代码:
public static async Task DoAsyncTask()
{
await Task.Delay(1000); // 模拟一个异步操作
Console.WriteLine("异步操作完成");
}
public static void Main()
{
Task.Run(async () =>
{
await DoAsyncTask();
}).ContinueWith(task =>
{
Console.WriteLine("不等待异步方法返回的任务完成");
});
Console.WriteLine("主线程继续执行");
Console.ReadLine();
}
上述代码中,我们首先定义了一个异步方法DoAsyncTask,它模拟了一个异步操作。在Main方法中,我们使用Task.Run方法启动了一个新的任务,并在其中调用了DoAsyncTask方法。然后,我们使用Task.ContinueWith方法指定了一个回调函数,该函数将在异步方法完成时执行。在主线程中,我们打印了一条消息以表示主线程继续执行。
当运行上述代码时,输出将类似于以下内容:
主线程继续执行
异步操作完成
不等待异步方法返回的任务完成
可以看到,主线程不会等待异步方法返回的任务完成,而是立即继续执行,并在异步方法完成后执行回调函数。