相关疑难解决方法(0)

为什么使用HttpClient进行同步连接

我正在构建一个类API来与API进行交互.我需要调用API并处理XML响应.我可以看到HttpClient用于异步连接的好处,但我正在做的是纯粹的同步,所以我看不到使用它的任何重大好处HttpWebRequest.

如果有人可以放弃任何光线,我将非常感激.我不是为了它而使用新技术的人.

c# asp.net dotnet-httpclient

173
推荐指数
7
解决办法
14万
查看次数

返回IHttpActionResult与IEnumerable <Item> vs IQueryable <Item>

在ASP.NET Web API 2中,以下内容有何区别?

public async Task<IEnumerable<MyItem>> GetMyItems()
{
    //... code ..., var myItems = await ...
    return myItems;
}
Run Code Online (Sandbox Code Playgroud)

public async Task<IQueryable<MyItem>> GetMyItems()
{
    //... code ..., var myItems = await ...
    return myItems;
}
Run Code Online (Sandbox Code Playgroud)

public async Task<IHttpActionResult> GetMyItems()
{
    //... code ..., var myItems = await ...
    return Ok(myItems);
}
Run Code Online (Sandbox Code Playgroud)

我应该退货IHttpActionResult还是IEnumerable<MyItem>/ IQueryable<MyItem>

c# asp.net async-await asp.net-web-api asp.net-web-api2

33
推荐指数
2
解决办法
1万
查看次数

在webapi中使用async await的最佳实践

我有.NET核心Web API作为服务层.服务层具有所有EF代码.

如果有basecontroller与此代码

protected Task<IActionResult> NewTask(Func<IActionResult> callback)
{
    return Task.Factory.StartNew(() =>
    {
        try
        {
            return callback();
        }
        catch (Exception ex)
        {
            Logger.LogError(ex.ToString());
            throw;
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

在控制器操作中,我将上述方法中的所有调用包装到例如:

[HttpGet("something")]
public async Task<IActionResult> GetSomething(int somethingId)
{
    return await NewTask(() =>
    {
        var result = _somethingService.GetSomething(somethingId);

        if (result != null)
            return Ok(result);
        else
            return NotFound("Role not found");
    });
}
Run Code Online (Sandbox Code Playgroud)

这是正确的模式,考虑到明天,我可能有多个服务呼叫在行动或拨打其他Web服务.请指教.

c# async-await asp.net-web-api asp.net-core

10
推荐指数
2
解决办法
2万
查看次数

为什么异步编程更快

我一直听说使用异步编程模式会让我的代码运行得更快.为什么这是真的?不管是现在运行还是以后运行,都不能以相同的方式运行相同的代码?

language-agnostic asynchronous

5
推荐指数
2
解决办法
3388
查看次数

混合使用同步方法时,可以在Web API中实现异步/等待的好处

我的目标是提高我正在开发的Web API的可伸缩性。为此,我将控制器动作实现为async。想法是释放请求线程并可以处理其他传入请求。但是,各州的成功答案Effectively use async/await with ASP.NET Web API

您需要一个真正的异步实现来获得异步的可伸缩性优势。

最终,我的代码需要从第三方库中调用非常同步,单线程和I / O绑定的方法。因此,真正做到这一点的唯一方法是通过Task.Run(),我认为它将保留在线程上-从而取消了异步/等待的好处。

那么,当混合操作中存在同步操作时,是否有一种方法可以在Web API方案中实现异步/等待的好处?

.net c# asp.net asp.net-mvc async-await

2
推荐指数
1
解决办法
113
查看次数