我知道,它可能使用隱式提供異步交互:C#.Net中異步交互的示例?
- 異步委託
- 異步回調
我只是想知道還有什麼其他方法.NET支持異步交互?
非常感謝。
問候
編輯:
也許我沒有正確地解釋自己.... 我理解線程和併發PERFECTLY,我只是想的可能方式列表,以實現在.net臺異步交互,除了使用異步委託或回調。
我知道,它可能使用隱式提供異步交互:C#.Net中異步交互的示例?
我只是想知道還有什麼其他方法.NET支持異步交互?
非常感謝。
問候
編輯:
也許我沒有正確地解釋自己.... 我理解線程和併發PERFECTLY,我只是想的可能方式列表,以實現在.net臺異步交互,除了使用異步委託或回調。
(我不知道我完全理解你的目標是什麼,在你的問題,但我給它一杆)
爲了允許異步在winforms應用程序中執行代碼BackgroundWorker組件相當方便。我也經常使用ThreadPool.QueueUserWorkItem方法作爲在自己的線程上產生方法的簡單方法。
看看這個網頁,它寫得很好用很好的例子: http://www.yoda.arachsys.com/csharp/threads/
異步操作都通過調用一個名爲BeginSomething
,其中Something
很可能將是Invoke
,Write
,Send
或其他一些操作方法開始。
例子:
http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.beginsend.aspx
你通過自己的代表在操作完成時,將被處決。然後您可以通過調用相應的方法EndSomething
來獲得操作結果。
實施例:
http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.endsend(VS.80).aspx
的圖案是通常相同而不管正在執行的操作。有些奇怪的地方,EndSomething
方法被命名爲不一致的東西。
更多的例子:
你可以基本表達式枝條或其他單子(尚未允許鏈接,但該術語可以發現wiki和加爾文對這個問題的偉大的博客也一樣)
基本上一切,使您可以imparative編碼可以用於異步實現。
你也可以谷歌繼續傳球。所有方法都不返回值(void)的編碼風格,但是需要一個參數(一個委託類)來告訴它什麼時候完成。
我在這裏看到了一些措辭不好的問題,但這需要餅乾! – 2009-05-27 09:18:27
這是如何複雜? 如果我問了這個問題,給我一個方法列表的方式來存儲數據的便攜式媒體,而不是使用CD,你會回覆:USB棒,軟盤等 我想要的只是一個支持列表在.Net中進行異步交互的方法.......不是火箭科學! – Goober 2009-05-27 09:37:24