我知道可以使用以下方式隐式提供异步交互:
我只是想知道.Net支持异步交互的其他方法是什么?
非常感谢。
此致
编辑:
也许我没有正确解释自己...... 我完全理解线程和并发性,除了使用异步委托或回调之外,我只想要一份在.Net中实现异步交互的潜在方法列表。
答案 0 :(得分:0)
看看这个网页,它写得很好,有很好的例子: http://www.yoda.arachsys.com/csharp/threads/
答案 1 :(得分:0)
这可能超出了您的要求,但也支持消息队列。
答案 2 :(得分:0)
.NET中的异步操作是通过调用名为BeginSomething
的方法启动的,其中Something
可能是Invoke
,Write
,{{1}或其他一些操作。
示例:
http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.beginsend.aspx
您传递自己的委托,该委托将在操作完成时执行。然后,您可以通过调用相应的方法Send
来获取操作的结果。
示例:
http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.endsend(VS.80).aspx
无论正在执行的操作如何,模式通常相同。有些奇怪的地方,EndSomething
方法被命名为不一致的东西。
更多例子:
答案 3 :(得分:0)
(我不确定我完全理解你在问题中的目的,但我会试一试)
为了允许在winforms应用程序中执行异步代码,BackgroundWorker组件非常方便。我还经常使用ThreadPool.QueueUserWorkItem方法作为在自己的线程上生成方法的简单方法。
答案 4 :(得分:0)
你可以基于表达发辫或其他monad(还不允许链接但是这个术语可以在维基找到,而Calvin也有一个关于这个主题的好博客)
基本上所有允许你进行比较编码的东西都可以用于异步实现。
你也可以google继续传球。一种编码风格,其中所有方法都不返回值(void),但是接受一个参数(一个类别的委托),告诉它完成后要执行的内容。