【发布时间】:2009-09-04 15:55:43
【问题描述】:
Providing Synchronous and Asynchronous versions of Method in c# 询问如何 提供方法的异步版本。
其中一个答案建议类库开发人员应尽可能避免提供基于single responsibility principle 的异步方法。
这是真的吗?
我不应该提供方法的异步版本吗?如果答案是 NO(换句话说,DO 提供异步版本的方法),那么我应该遵循this MSDN article 中的建议吗?状态:
IAsyncResult 设计模式允许多种编程模型,但学习起来更复杂,并且提供了大多数应用程序不需要的灵活性。在可能的情况下,类库设计者应该使用事件驱动模型来实现异步方法。在某些情况下,库设计者还应该实现基于 IAsyncResult 的模型。
??
“事件驱动模型”是一种,如果方法的同步版本是 Verb(),则方法的异步版本是 VerbAsync() ,并且有一个动词完成的事件。
IAsyncResult 模式是众所周知的 BeginVerb() 和 EndVerb() 方法。
【问题讨论】:
标签: .net asynchronous class-design