我知道,它可能使用隐式提供异步交互: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