我正在研究使用上述任何一种处理长时间运行操作的方式。使用TPL和异步模式之间的实际区别
我不会详细介绍使用这些方法可以完成什么,但我更愿意解释我想要做什么。
我有一组HTTP相关的方法,每个方法都检索几条信息。这是长时间运行的服务中更大系统的一部分(所以它不是一次性的,可抛弃的代码)。
一般情况下,哪种方法更好,封装和可维护性明智的:处理返回的数据时,它使用了开始的准备/结束/ AsyncCallback的机制,或通过从触发事件任务中,像OnXXXReceived,OnXXXError,使用派生的EventArgs类,每个事件?
我希望我已经清楚了..我决定不提供代码示例,因为我比意见,建议和可能的陷阱更感兴趣,而不是具体实现的花絮。
谢谢!
主要是因为从封装的角度来看,这些操作不是那些知道应该如何处理数据的操作,一旦它们检索到它们。这是外部范围谁..但是,实际上,你可能是对的。我正在考虑将任务放入实现HTTP方法的类中,因此从外部代码我将订阅事件,然后调用内部启动任务的方法,该任务将检索信息并激发正确的事件。没有想到将任务放入外部范围,直接处理返回的数据。 – 2010-06-15 14:38:09