Los recursos generalmente se devuelven al sistema cuando finaliza el proceso, no cuando uno de sus subprocesos lo hace.
Sin embargo, CoUninitialize() no solo libera recursos y descarga archivos DLL, sino que también ingresa un bucle de mensaje modal para bombear los mensajes COM restantes antes de que finalice el hilo. La documentación dice:
Si hay conversaciones abiertas restantes, CoUninitialize
comienza un bucle de mensajes modal y envía los mensajes pendientes de las contenedores o servidor para esta aplicación COM. Al enviar los mensajes , CoUninitialize
garantiza que la aplicación no salga de antes de recibir todos sus mensajes pendientes. Los mensajes que no son COM están descartados.
Por lo tanto, con el fin de evitar errores de RPC en el lado de las personas que llaman, me gustaría recomendar que sigue los consejos de la documentación y siempre a CoUninitialize()
antes de terminar las discusiones que han llamado CoInitializeEx()
.
Incluso si no es importante hacerlo, ¿por qué no emparejarlos? –
Porque el código ya está en fase de prueba, y prefiero no cambiarlo si el cambio es irrelevante, pero puntual. – jeffm