繁体   English   中英

如果我将 async 关键字添加到应该返回 Task 的方法中,它会将返回值包装在 Task 中?

[英]If i add async keyword to a method which which should return a Task it wrap the return value in Task?

如果写这个 function 没有异步和等待这个例子我得到错误我应该返回任务而不是用户 object

public Task<User> Register(User user, string password)
    {
        byte[] passwordhash,passwordsalt;

        CreatePassword(password,out passwordhash,out passwordsalt);

        return user;
    }

但是如果用 async 和 await 写这个 function 作为这个例子它工作正常,所以我想知道是否将 async 关键字添加到任何方法它应该自动将返回值包装到一个任务

public async Task<User> Register(User user, string password)
    {
        byte[] passwordhash,passwordsalt;
        CreatePassword(password,out passwordhash,out passwordsalt);

        await _Context.Users.AddAsync(user);
        await _Context.SaveChangesAsync();

        return user;
    }

如果将 async 关键字添加到任何方法,它应该自动将返回值包装到 Task

是的。 一种思考方式是async将返回的值(或异常)包装到Task (或类似任务)中。 await “解包”返回值(或异常)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM