c# - 实现异步方法 wcf

标签 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
            }
}

还好吗?或者我应该改变它不要有“同步”部分 这段代码没有被编译,它只是表明有部分代码是“同步的”

最佳答案

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

查看以下链接,其中介绍了客户端如何异步访问服务操作 Call WCF Service Operations Asynchronously

关于c# - 实现异步方法 wcf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21138488/

相关文章:

wcf - 带有 Visual Studio 2012 的 Web 服务软件出厂安装

c# - wcf 体系结构 - 如何以灵活的方式设计我的服务契约(Contract)

c# - 如何使我的自定义 TaskScheduler 成为默认任务调度程序

javascript - 奇怪的异步 node.js

c# - 将数据表转换为 IEnumerable<T> 以传递给 Result<T>(IEnumerable<T> 数据);

c# - 使用 Task.WhenAll() 时如何让所有任务完成?

c# - Microsoft Web API 生成 WSDL 的最简单途径

c# - Mongo 替换导致子文档中的重复项 C#

c# - 无法使用 ProcDump 捕获 OutOfMemory 异常的转储

ios - 如果我快速滚动 tableView,则返回 nil