我的即時消息庫利用開始/結束異步模式來處理等待確認的套接字發送的大多數(如果不是全部的話)通信。關於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