說我有4類訂購的在c#異步方法的調用
- ControllerClass
- MethodClass1
- MethodClass2
- MethodClass3
並且每個MethodClass具有異步方法DoStuff( )並且每個都有一個CompletedEvent。
ControllerClass負責以特定順序在3個方法類別上調用3個異步方法。
因此,ControllerClass調用MethodClass1.DoStuff()並訂閱MethodClass1.CompletedEvent。當該事件被觸發時,ControllerClass調用MethodClass2.DoStuff()並訂閱MethodClass2.CompletedEvent。當該事件被觸發時,ControllerClass調用MethodClass3.DoStuff()
對於這種情況是否有最佳做法?這是不好的設計?
我相信這是因爲
- 我很難發現它的單元測試(一個明確的信號)
- 這是不容易改變的順序
- 我有一種不安,代碼異味感覺它
在這種情況下有什麼替代方案?
注意:我針對.NET 2.0框架
他的AsyncEnumerator是Microsoft CCR的一個簡單版本,取代了Task Parallel Library:http://msdn.microsoft.com/en-us/library/dd460717.aspx – Oliver 2010-05-07 09:32:38
感謝您的鏈接,我會檢查出來。我應該說我的目標是.NET 2.0。我會更新我原來的問題。 – 2010-05-07 09:57:46
@Oliver:就我所知,任務並行庫不會取代ccr,它可以並排使用,並且它們具有不同的特徵。 Ccr是輕量級的異步處理和消息傳遞,tpl是更重型的癱瘓大算法。 – Toad 2010-06-05 14:56:59