Task与await/async如何使用
时间: 2023-12-25 16:06:33 浏览: 28
Task是.NET中用于异步编程的基本类型,它可以用于表示异步操作的结果。而await/async是.NET中用于异步编程的关键字,它们可以使异步编程变得更加简单和直观。
在使用Task时,可以使用Task.Run方法来创建一个异步操作,例如:
```
Task<int> task = Task.Run(() =>
{
// 在这里执行异步操作,例如访问数据库或网络等
return 42;
});
```
上面的代码创建了一个异步操作,它会在后台线程上执行,并返回一个int类型的结果。可以通过调用task.Result属性来获取结果,但是这会阻塞当前线程直到异步操作完成。
而在使用await/async时,可以使用async关键字来标记异步方法,然后在方法内部使用await关键字来等待异步操作完成。例如:
```
async Task<int> DoSomethingAsync()
{
// 在这里执行异步操作,例如访问数据库或网络等
int result = await SomeAsyncOperation();
return result + 1;
}
```
上面的代码定义了一个异步方法,它会在后台线程上执行,并等待SomeAsyncOperation方法完成。完成后会返回一个int类型的结果,并将结果加1返回。
在调用异步方法时,可以使用await关键字来等待方法完成,例如:
```
int result = await DoSomethingAsync();
```
上面的代码会异步调用DoSomethingAsync方法,并等待方法完成。完成后会返回一个int类型的结果,并将结果赋值给result变量。