1

我有一个使用带有 /async 标志的 SVCUTIL 生成的 wcf 客户端。

服务器是同步的,但我只在客户端中使用 Begin/End 方法。

另外,我在 CallbackBehavior 中添加了属性 UseSynchronizationContext=false。

我的问题是:WCF 如何在这种模式下处理线程?或者更好的措辞 - 当我调用同时函数时,WCF 是否使用 ThreadPool 类来获取回调的新线程?还是有一些自定义实现?

我在谷歌上搜索了几个小时,没有找到任何答案。

编辑:我看到我在这里有点不清楚 - 我不是在询问服务器应用程序,我是在询问客户端应用程序 - 当我设置 usesynchrationcontext 标志时,它如何管理返回回调的线程假的?

4

1 回答 1

1

您的服务的线程不受客户端如何调用它的影响。当您使用代理 Begin/End 方法时,代理使用不同的客户端线程来进行服务调用,这样您的应用程序代码就不会阻塞。

现在首选基于 .NET 4.5 任务的异步调用。

有关不同模式的概述,请参阅同步和异步操作。

于 2013-04-04T15:53:01.063 回答