c# - 使用管道时一直异步
问题描述
如果我有一个使用管道的应用程序,该管道具有许多要foreach
在所有阶段上执行的阶段并调用:
CanExecute
Execute
界面是这样的:
public interface IService
{
bool CanExecute(IContext subject);
IContext Execute(IContext subject);
}
它基本上接受一个上下文并返回一个它变得更丰富的上下文。
在其中一个阶段Execute
方法中,我需要调用服务,并且想要执行异步操作。所以现在Execute
方法需要更改为例如
Task<IContext> ExecuteAsync(IContext subject);
用于await
调用服务。
所有其他阶段都没有异步代码,但现在需要更改,因为最佳实践是“一路异步”。
引入异步代码时必须进行这些更改是否正常?
解决方案
引入异步代码时必须进行这些更改是否正常?
当您更改任何方法的签名时,必须进行更改是正常的。如果您想重命名它并更改返回类型,那么是的,调用该方法的任何地方都必须更改。
改变它们的最好方法是使它们也异步,一直到链上。
推荐阅读
- azure-devops - 如何使用 azure devops rest api 在过去 180 天内获取成功和失败版本的计数
- python - 套接字通信中的问题
- c# - 当我将代码复制并粘贴为 Autodesk Forge 教程时,OAuthController 出现错误
- api - 这是微服务最好的 API 自动化测试和监控工具
- laravel-lighthouse - PHP Lighthouse 从 FieldResolver 中的根查询获取参数
- javascript - JavaScript中有没有办法检测文件是否可以放在使用的设备上?
- css - 不同颜色的多个复选框几个id
- javascript - 在运行下线问题后反应本机 axios 或 fetch,使用异步函数但代码无效
- java - 为什么我的 JButton 没有出现在不同的操作系统上
- php - Doctrine - QueryBuilder 使用 leftJoin,重新组合字段结果