虽然我已经在.NET中使用异步代码了一段时间,但我最近才开始研究它并了解正在发生的事情.我刚刚完成了我的代码并试图改变它,所以如果一项任务可以与某些工作并行完成,那么它就是.例如:
var user = await _userRepo.GetByUsername(User.Identity.Name);
//Some minor work that doesn't rely on the user object
user = await _userRepo.UpdateLastAccessed(user, DateTime.Now);
return user;
Run Code Online (Sandbox Code Playgroud)
现在变成:
var userTask = _userRepo.GetByUsername(User.Identity.Name);
//Some work that doesn't rely on the user object
user = await _userRepo.UpdateLastAccessed(userTask.Result, DateTime.Now);
return user;
Run Code Online (Sandbox Code Playgroud)
我的理解是现在正在从数据库中获取用户对象WHILST正在进行一些不相关的工作.但是,我看到的帖子暗示结果应该很少使用,等待是首选但我不明白为什么我要等待我的用户对象被提取,如果我可以执行一些其他独立的逻辑同时?