c#task async await
时间: 2023-09-04 22:17:21 浏览: 73
C#中的`Task`, `async`, 和 `await`是用于异步编程的关键词。`Task`表示一个可执行的操作,可以是同步或异步的。`async`关键字用于标记一个方法为异步方法,使得它可以使用`await`关键字来等待其他异步操作的完成。
常见的用法是在异步方法中使用`await`来等待另一个异步方法的完成,这样可以避免阻塞主线程。当使用`await`等待一个返回`Task`或`Task<T>`的方法时,当前方法会暂时释放主线程的控制权,并在等待的操作完成后继续执行。
下面是一个简单的示例,展示了如何使用`Task`, `async`, 和 `await`:
```csharp
using System;
using System.Threading.Tasks;
public class Program
{
public static async Task Main()
{
await DoSomethingAsync();
Console.WriteLine("Async operation completed.");
}
public static async Task DoSomethingAsync()
{
await Task.Delay(1000); // 模拟一个耗时的异步操作
Console.WriteLine("Async operation done.");
}
}
```
在上面的示例中,`Main`方法被标记为异步方法,并在其中使用`await`等待`DoSomethingAsync`方法的完成。`DoSomethingAsync`方法使用`Task.Delay`方法来模拟一个耗时的异步操作。
当运行这段代码时,程序会输出以下内容:
```
Async operation done.
Async operation completed.
```
可以看到,`await`确保了异步操作的顺序执行,而不会阻塞主线程。