使用C#异步调用WCF?

时间:2009-04-23 14:13:19

标签: c# wcf asynchronous

在C#中,如何对WCF Web服务进行异步调用?我有一个服务参考设置来生成异步。我还修改了我使用{WebServiceObject.Begin *()}的调用,但最后有两个参数,'AsyncCallback'和'object asyncState'。这些是什么以及如何使用它们?

谢谢,

3 个答案:

答案 0 :(得分:4)

您可能还想查看Async without the Pain

答案 1 :(得分:3)

请参阅MSDN 这里; http://msdn.microsoft.com/en-us/library/system.asynccallback.aspx

这里; http://msdn.microsoft.com/en-us/library/ms228969.aspx

这里; http://msdn.microsoft.com/en-us/library/ms228975.aspx

在这里; http://msdn.microsoft.com/en-us/library/86wf6409.aspx

基本上在Begin *中设置回调,操作完成后调用回调。在那里你调用End *来检索适当的数据。

答案 2 :(得分:2)

操作完成后调用回调,因此您可以调用End *并获取返回值或异常(如果有)。如果在多个地方使用相同的回调方法,asyncState只是回调中匹配的值。以下是异步设计模式的说明 - http://msdn.microsoft.com/en-us/library/aa719595(VS.71).aspx

如果您正在创建GUI应用程序,请考虑使用另一个版本 - * Async方法,该方法也是为每个操作生成的。它提供了线程同步。