在我的WCF服务上调用close会终止所有资源或将它们设置为GC,还是应该将它设置为null?在我的WCF服务上调用close()会释放所有资源吗?
回答
首先,WCF代理是IDisposable
,这样你就可以样使用using
:
using(var proxy = new MyProxy()) { // see below - not quite enough
// use proxy
}
不幸的是,WCF也有定时抛出异常的错误Dispose()
实现。但是,要使here's a really cool trick正常工作。我也对这个myself发表了博文,但我认为第一个链接好得多。
所以:使用IDisposable
和using
,但谨慎使用(在这种情况下)。
设置字段通常没有区别。有几个边缘情况(例如由多个委托人捕获的变量,静态字段,长寿命对象等),但总的来说不需要它。特别是,做不做到这一点,因为这在理论上可以延长寿命:
if(field != null) field = null; // BAD
您只需要设置一个变量为空,如果它将在很长一段时间后可达。说一个长寿命对象上的字段,或者一个静态字段。这通常适用于WCF。
这不像.NET问题那么多的WCF问题;又见
Setting Objects to Null/Nothing after use in .NET
Is disposing this object, enough? or do i need to do more?
In the Dispose(bool) method implementation, Shouldn't one set members to null?
其实,这是 - 与WCF你** **做需要做的更多,由于越野车的Dispose( )的实施。 – 2009-02-13 20:51:49
- 1. Java不会释放应用程序中的所有资源close
- 2. Android不会从服务释放资源?
- 3. 我应该叫evhttp_request_free释放http服务器中的资源吗?
- 4. 单向WCF调用后在服务代理块上调用Close()
- 5. 如何在RMI调用中释放服务器端资源?
- 6. WCF Windows服务每次调用后都不释放资源/内存
- 7. 我应该在ServiceController上调用Close()吗?
- 8. 为什么Word在文档上调用Close()后没有释放我的文件?
- 9. WCF关闭连接/释放资源
- 10. 限制WCF服务资源的使用
- 11. 在这种情况下,Dispose()会提前释放资源吗?
- 12. 在MVC中调用WCF服务时找不到HTTP资源
- 13. 我需要在Qt中释放slot参数的资源吗?
- 14. 泄漏的内存和所有内存资源在应用期限一旦被释放后会被释放?
- 15. SFML释放资源
- 16. Php资源释放
- 17. C# - 释放对象使用的所有资源
- 18. 在C#中释放资源
- 19. WCF服务调用WCF服务 - 在哪里放置客户端服务引用?
- 20. Qt UI Generator不会释放资源
- 21. 在这种情况下,我应该担心释放资源吗?
- 22. 使用IIS和Asynch方法的WCF的最大并发会话 - 释放资源
- 23. 释放boost :: shared_ptr上的资源
- 24. 所有WCF服务都不会启动
- 25. 停止调试时释放资源
- 26. 厨师服务资源init_command,可以有人向我解释这
- 27. 如何为wcf ria服务调用释放内存?
- 28. 正确终止C#应用程序并释放所有资源
- 29. 我应该在所有资源上接受POST方法吗?
- 30. WCF资源异步调用
这听起来像OP是在谈论服务,而不是客户端,所以我不知道这是多少直接相关(但有助于了解有关关闭/处置/中止的WCF设计选择)。 – Brian 2009-02-13 21:14:50