首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不关闭ChannelFactory与不断重新创建并关闭ChannelFactory之间的比较

不关闭ChannelFactory与不断重新创建并关闭ChannelFactory之间的比较
EN

Stack Overflow用户
提问于 2010-06-18 01:04:03
回答 1查看 1.5K关注 0票数 3

我在代码中使用了一个WCF服务,并将其作为ChannelFactory类生成。我知道使用WCF的正确方法是创建ChannelFactory (让我们称之为AwesomeClient),完成工作,然后对其调用Close()。下面是我的代码片段:

代码语言:javascript
复制
    public static void DoSomething()
    {
        var client = new AwesomeClient();
        client.DoSomethingAwesome();
        client.Close();
    }

但是,我预计DoSomething会被频繁调用(比如一分钟调用10次?),所以我得到的建议是将ChannelFactory实例化为静态实例,并且始终重用相同的实例,并且永远不需要关闭它(因为这比总是重新创建ChannelFactory然后关闭它“更便宜”)。

我在这里寻求另一种意见,谁能告诉我为什么不调用Close并重用静态实例是一个好主意?或者我应该继续重新创建ChannelFactory,并在每次调用时使用-ing()?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-18 05:15:17

一分钟10次并不是那么频繁。每秒10次,我肯定会考虑重用这个通道。

在你的情况下,要做出一个好的决定有很多未知数。有多少客户端将连接到该服务?这是一种什么样的连接(有没有可能会停机一小段时间),有没有负载均衡器?代理?

顺便说一句,如果您决定每次都打开和关闭通道,则不需要重新创建ChannelFactory。保持静态,每次只需打开和关闭一个新的通道。大多数情况下,创建工厂会消耗更多的资源。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3063849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档