我的即时消息库利用开始/结束异步模式来处理等待确认的套接字发送的大多数(如果不是全部的话)通信。关于IAsyncResult实现的问题
因此,我发现自己为相当多的操作实现了IAsyncResult。 (ChangeNicknameOperation,SendMessageOperation,AddUserOperation等)。
我决定为我的称为AsyncOperationBase的异步操作创建一个基类,它包含IAsyncResult的标准实现,包括将操作设置为完整的方法。
这是常见的做法吗?考虑到重复的代码非常少,我觉得这样做有点不必要。
此外,在调用AsyncResult的回调函数时,是否建议在另一个线程上调用它,或者调用完成该操作的线程是否完全合法?
感谢
注虽然从异步IO进来时,你*可能*想避免使用'Task []',因为a:通过任务调度器(这是不必要的)绑定你一些工作,b:它引入了一个很多终结者;我有一个类似的API,并且一旦微软澄清了我发现的一些错误(在异步CTP) –
2011-04-25 06:58:25
非常有趣的Marc。当我拥有一个与您的网站一样大的网站时,我会更深入地了解BookSleeve ;-) – 2011-04-25 10:12:05