在我的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