c#如何在同步方法中使用await 等待异步方法返回值
时间: 2024-11-12 21:33:36 浏览: 22
在 C# 中,如果你想在同步方法中等待异步方法的完成,并获取其结果,你需要使用 `async` 和 `await` 关键字。这通常涉及到定义一个 `async` 方法,其中包含一个 `await` 关键字来暂停当前线程直到异步操作完成。下面是一个简单的例子:
```csharp
using System.Threading.Tasks;
public async Task<string> FetchDataAsync()
{
// 这是一个模拟的异步方法,实际可能是数据库查询、网络请求等
var data = await SomeAsyncMethodThatReturnsAString();
return data;
}
public string SomeAsyncMethodThatReturnsAString()
{
// 异步方法,这里可能阻塞
return "Some data";
}
// 在同步方法中使用异步方法
public void DoSomething()
{
string result = await FetchDataAsync(); // 使用await关键字,程序会在这里暂停直到FetchDataAsync完成
Console.WriteLine($"Received data: {result}");
}
```
在这个例子中,`DoSomething` 是同步方法,在调用 `FetchDataAsync` 时,它不会立即继续执行,而是在 `await FetchDataAsync()` 行后暂停。当 `FetchDataAsync` 完成并返回数据时,`DoSomething` 的执行才会继续。
阅读全文