我有一个async方法:
public async Task<string> GenerateCodeAsync()
{
string code = await GenerateCodeService.GenerateCodeAsync();
return code;
}
Run Code Online (Sandbox Code Playgroud)
我需要从同步方法中调用此方法.
如何在不必复制GenerateCodeAsync方法的情况下执行此操作以使其同步工作?
更新
然而找不到合理的解决方案
但是,我看到HttpClient已经实现了这种模式
using (HttpClient client = new HttpClient())
{
// async
HttpResponseMessage responseAsync = await client.GetAsync(url);
// sync
HttpResponseMessage responseSync = client.GetAsync(url).Result;
}
Run Code Online (Sandbox Code Playgroud) 我试图完全理解async- await我理解中的一个缺点就是看到"一路走下去".我创建了一个async方法,它被另一个async方法等调用,一直到我理解的模糊术语,如"一个UI"或"一个可以处理多个请求的Web服务器".我如何用技术术语描述什么是"一直向下"?
让我们来看一个Web服务器的第二个例子.说我有一个控制器动作
[HttpGet]
public async Task<IHttpActionResult> GetRecords()
{
var records = await repository.GetRecordsFromDbAsync();
return Ok(records);
}
Run Code Online (Sandbox Code Playgroud)
我在哪里可以找到.NET源代码中的"一路向下"代码,它可以异步调用它?