我们在 2008 年在 .NET 3.5(现在在 .NET 4.0 下重新编译)上构建了一个强大的 WCF 客户端,它通过 net.tcp 绑定(bind)与我们自己的 WCF 服务通信。健壮的客户端使用 ChannelFactory
我们正在迁移到 .NET 4.5/C# 5,并希望使用 async/await/TAP 使客户端异步。如何以产生干净代码和良好运行时性能的方式最好地做到这一点?
(我查看了有关此主题的 MS 文档,但它总是谈论运行 svcutil。我们不使用 svcutil;我们直接使用 ChannelFactory。另外:MS 文档用于在 .NET 4.5 下使用 channel 工厂异步调用操作未更改自 .NET 3.0 天以来。似乎 ChannelFactory 还没有接受新的异步。)
最佳答案
您可以将现有的 APM ( Begin*
/End*
) 端点包装到 TAP-ready Task
使用 TaskFactory.FromAsync
.
你可以找到我的Async WCF Today and Tomorrow post很有帮助,它展示了如何将 TAP 与 VS2012 之前的 svcutil 一起使用。
关于wcf - 如何应用任务异步模式和 WCF 的 ChannelFactory<TChannel>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13443022/