我正在研究使用上述任何一種處理長時間運行操作的方式。使用TPL和異步模式之間的實際區別
我不會詳細介紹使用這些方法可以完成什麼,但我更願意解釋我想要做什麼。
我有一組HTTP相關的方法,每個方法都檢索幾條信息。這是長時間運行的服務中更大系統的一部分(所以它不是一次性的,可拋棄的代碼)。
一般情況下,哪種方法更好,封裝和可維護性明智的:處理返回的數據時,它使用了開始的準備/結束/ AsyncCallback的機制,或通過從觸發事件任務中,像OnXXXReceived,OnXXXError,使用派生的EventArgs類,每個事件?
我希望我已經清楚了..我決定不提供代碼示例,因爲我比意見,建議和可能的陷阱更感興趣,而不是具體實現的花絮。
謝謝!
主要是因爲從封裝的角度來看,這些操作不是那些知道應該如何處理數據的操作,一旦它們檢索到它們。這是外部範圍誰..但是,實際上,你可能是對的。我正在考慮將任務放入實現HTTP方法的類中,因此從外部代碼我將訂閱事件,然後調用內部啓動任務的方法,該任務將檢索信息並激發正確的事件。沒有想到將任務放入外部範圍,直接處理返回的數據。 – 2010-06-15 14:38:09