相关疑难解决方法(0)

同步调用异步方法

我有一个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)

c# asp.net asynchronous task-parallel-library async-await

216
推荐指数
7
解决办法
21万
查看次数

"异步一路走下去":嗯,底部到底是什么?

我试图完全理解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源代码中的"一路向下"代码,它可以异步调用它?

.net c# asynchronous async-await

15
推荐指数
5
解决办法
2579
查看次数