2015-01-14 4 views
2

Я модернизирую компонент COM VB6.0 в .Net COM ServicedComponent Я заметил, что исходный компонент VB6.0 вызывал метод RpcMgmtEnableIdleCleanup в деструкторе Class_Terminate.Какое правильное использование RpcMgmtEnableIdleCleanup в управляемом коде?

Private Sub Class_Terminate() 
    Call RpcMgmtEnableIdleCleanup 
End Sub 

Я не уверен, если я должен сохраняться этот код во время модернизации, или если GC будет просто справиться с этим.

В принципе, мне это нужно в моем управляемом коде?

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

Я искал, и я не нашел ничего конкретно относительно моей проблемы.

ответ

1

Похож на программирование вуду. Один воображает, что вы делаете это в начале программы, а не в конце.

Его можно включить только выключенным. Он может быть включен или выключен по мере того, как система определяет. При необходимости система включит его.

Я бы сказал, что это не связано с программой, а с системным администрированием. Если он решил проблему с конкретной версией, причина в том, что она давно исчезла.

Вот выдержки из справки.

Замечания

Примечание RpcMgmtEnableIdleCleanup является расширением Microsoft спецификации OSF-DCE RPC.

Вызов этой функции достаточно. После вызова очистка ресурса бездействия не может быть отключена. В некоторых случаях, в зависимости от версии и конфигурации Windows, RPC Runtime, возможно, потребуется создать отдельный поток, чтобы выполнить такую ​​очистку, поэтому очистка незанятых ресурсов не всегда включена. В Windows XP и более поздних версиях Windows RPC Runtime запрограммирована на автоматическое включение очистки незанятого ресурса, если ресурсы в режиме ожидания достигают определенного порога.

Смежные вопросы