实现异步方法wcf

时间:2014-01-15 13:19:12

标签: c# wcf asynchronous

我正在实现异步方法。但我不确定我所做的是正确的。 例如,该方法写入跟踪并进行一些处理:

Trace.TraceInformation("Synchronous call");
            if (null == data)
            {
                Trace.TraceError("InvalidInputException");
                OrdersFaultException connEx = new UnknownFaultException();
                throw new FaultException<YnknownFaultException>(connEx);
            }
            try
            {
               object o = await //some call;
               //check that the object is not null and make some processing
            }
}

可以吗?或者我应该改变它不要有“同步”部分 这段代码没有编译它只是显示那些部分代码是“同步”的

1 个答案:

答案 0 :(得分:2)

你的代码是正确的没有什么会告诉你不要这样做,但你的代码await //some call;将阻止服务器端执行,但客户端将保持与调用同步,直到方法服务器端被终止或任何closeTimeout openTimeout receiveTimeout sendTimeout已达到限制,因此将从客户端忽略通话结果。 为了以异步方式实现调用,您应该使用像svcutil这样的工具来生成带有synchronousasynchronous方法签名的clientproxy。

检查以下链接,其中包含客户端如何异步访问服务操作Call WCF Service Operations Asynchronously

相关问题