当前位置: 首页 > 编程语言 > C#

C#、WCF、何时重用客户端代理分享

时间:2023-04-10 21:30:10 C#

C#、WCF、何时重用客户端代理我正在编写一个使用WCF传输文件的应用程序。传输是分段进行的,以允许在任何不可预见的中断后恢复。我的问题是关于客户端代理的使用,是让它保持打开并重新使用它来传输每个文件段更好,还是每次我想发送东西时都应该重新打开它?您可以重用WCF客户端代理,这将使您的客户端应用程序更快,因为代理只会被初始化一次。尽快关闭代理的原因是您可能正在建立一个占用系统资源的会话(netTcpBinding使用传输级会话,wsHttpBinding可以使用基于安全或基于可靠性的会话)。但你是对的——只要客户端代理没有处于关闭状态,你就可以完全重用它。如果您想更进一步,并且如果您可以在服务器和客户端之间共享一个具有服务和数据契约的通用程序集,则可以将客户端代理的创建分为两个步骤:这是您可以查看优化的一种可能性-鉴于您控制通信两端的场景,并且可以在服务器和客户端之间共享合同程序集。创建一个新的代理大约需要50-100毫秒,如果您的系统需要很好地扩展,这将是一个很长的时间。重用代理时,您必须了解其状态和线程问题。不要尝试使用已经忙于发送数据的代理来发送数据。(或接收)你将度过可怕的不眠之夜。一种重用的方法是,给代理一个[ThreadStatic]私有字段,并在每次需要发送数据时测试它的状态和状态。如果创建了一个新线程,线程静态字段将为空,您将需要创建一个代理。假设你有一个简单的线程模型,这将防止不同的线程互相踩到脚趾,你只需要担心代理的失败状态。以上就是C#学习教程:C#、WCF、何时复用客户端代理分享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,并不代表侵权,如有侵权,请点击右边联系管理员删除。如需转载请注明出处: