小编Axa*_*kat的帖子

我应该在调用异步方法的方法中返回 ValueTask 或 Task

我有一个具有以下签名的方法:

public async Task<Result> CreateAsync(T entity)
{
    try
    {
        await _c.CreateItemAsync(entity);

        return Result.Ok();
    }
    catch (Exception e)
    {
        return Handle(e); // returns a `Result`
    }
}
Run Code Online (Sandbox Code Playgroud)

_c 是ContainerCosmosDB 的。

现在,我有另一种方法是这样的:

public Task<Result> CreateUserAsync(User user)
{
    var userEntity = new UserEntity { Id = user.Id, Name = user.Name };
    return CreateAsync(userEntity);
}
Run Code Online (Sandbox Code Playgroud)

Result.Ok()是自定义类的一个非常简单的静态方法Result

class Result
{
    public static Result Ok() { return new Result(); }.
}
Run Code Online (Sandbox Code Playgroud)

因此,我有两种方法,一种是Task<Result> CreateUserAsync(User user),它返回一个简单的Task,而不等待其中的任何内容,但我最后调用的另一个任务return CreateAsync(userEntity);等待其中的内容。 …

c# task-parallel-library azure-cosmosdb

9
推荐指数
1
解决办法
4614
查看次数

标签 统计

azure-cosmosdb ×1

c# ×1

task-parallel-library ×1