2015-01-14 73 views
2

我正在將一個VB6.0 COM組件現代化爲一個.Net COM ServicedComponent我注意到原始的VB6.0組件正在調用Class_Terminate析構函數中的方法RpcMgmtEnableIdleCleanup託管代碼中RpcMgmtEnableIdleCleanup的正確用法是什麼?

Private Sub Class_Terminate() 
    Call RpcMgmtEnableIdleCleanup 
End Sub 

我不確定在現代化過程中是否需要堅持這段代碼,或者GC是否會簡單地處理這個問題。

基本上,我需要這個在我的託管代碼?

Protected Overrides Sub Finalize() 
    Call RpcMgmtEnableIdleCleanup() 
    MyBase.Finalize() 
End Sub 

我已經搜查過,我還沒有找到任何關於我的問題的具體內容。

回答

1

看起來像巫術編程。一個人想象你在一個節目開始時做到這一點,而不是結束。

它只能打開不關閉。系統確定後可能會打開或關閉。系統將在必要時開啓。

我會說這與程序無關,但系統管理。如果它解決了某個特定版本的問題,那麼原因早已消失。

這是來自幫助的評論。

備註

注RpcMgmtEnableIdleCleanup是微軟擴展到OSF-DCE RPC規範。

只調用此函數就足夠了。一旦被調用,閒置資源清理無法關閉。在某些情況下,根據Windows版本和配置的不同,RPC運行時可能需要創建單獨的線程才能執行此類清理,這就是爲什麼閒置資源清理並非始終處於打開狀態的原因。在Windows XP和更高版本的Windows上,如果空閒資源達到某個閾值,RPC Runtime將被編程爲自動打開空閒資源清除。

相關問題