【发布时间】:2014-07-07 05:41:34
【问题描述】:
根据this 文章,我们不应该提供异步实现的同步包装器。
我们在接口后面抽象了System.Net.SmtpClient,以便我们可以轻松测试发送电子邮件的代码。
由于SmtpClient 实际上同时具有异步和同步实现,我们应该同时公开这两个实现,还是只期望我们的ISmtpClient 接口的任何消费者只使用Wait 我们的异步SendAsync 方法。
在构建通用库时,不确定这里的指导方针是什么。在我们的例子中,我们知道我们需要同时使用异步和同步版本。
【问题讨论】:
-
您始终可以通过扩展方法提供基于封装的 EAP/APM 任务的异步操作。然后在您的 api 文档中告诉用户他可以通过引用您的扩展 dll 来使用它们
标签: c# .net asynchronous task-parallel-library async-await