2009-05-27 58 views
-1

我知道,它可能使用隱式提供異步交互:C#.Net中異步交互的示例?

  • 異步委託
  • 異步回調

我只是想知道還有什麼其他方法.NET支持異步交互?

非常感謝。

問候

編輯:

也許我沒有正確地解釋自己.... 我理解線程和併發PERFECTLY,我只是想的可能方式列表,以實現在.net臺異步交互,除了使用異步委託或回調。

+0

我在這裏看到了一些措辭不好的問題,但這需要餅乾! – 2009-05-27 09:18:27

+0

這是如何複雜? 如果我問了這個問題,給我一個方法列表的方式來存儲數據的便攜式媒體,而不是使用CD,你會回覆:USB棒,軟盤等 我想要的只是一個支持列表在.Net中進行異步交互的方法.......不是火箭科學! – Goober 2009-05-27 09:37:24

回答

0

(我不知道我完全理解你的目標是什麼,在你的問題,但我給它一杆)

爲了允許異步在winforms應用程序中執行代碼BackgroundWorker組件相當方便。我也經常使用ThreadPool.QueueUserWorkItem方法作爲在自己的線程上產生方法的簡單方法。

0

這可能是外面你問什麼,但也有一部分消息隊列支持。在.NET

+0

和一個例子是? – Svish 2009-05-27 08:59:07

0

異步操作都通過調用一個名爲BeginSomething,其中Something很可能將是InvokeWriteSend或其他一些操作方法開始。

例子:

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方法被命名爲不一致的東西。

更多的例子:

0

你可以基本表達式枝條或其他單子(尚未允許鏈接,但該術語可以發現wiki和加爾文對這個問題的偉大的博客也一樣)

基本上一切,使您可以imparative編碼可以用於異步實現。

你也可以谷歌繼續傳球。所有方法都不返回值(void)的編碼風格,但是需要一個參數(一個委託類)來告訴它什麼時候完成。