2011-06-16 23 views
7

Uso Delphi 2010 y cuando intento realizar una operación XmlHttpRequest dentro de un subproceso separado de mi aplicación, obtengo una excepción EOleSysError con el siguiente mensaje: 'CoInitialize no ha sido llamado, ClassID: { F6D90F16-9C73-11D3-B32E-00C04F990BB4} 'XmlHttpRequest y subprocesos en Delphi

¿Alguien tiene alguna idea para arreglar esto? (Lo siento por mi inglés malo)

Gracias!

+2

CoInitialize o CoInitializeEx deben invocarse para cada subproceso que está utilizando el objeto COM –

Respuesta

15

Call CoInitialize al principio del método Execute de su hilo. No olvides llamar a CoUninitialize al final de Execute.

Chris Bensen escribió unos blog posts about this.

+1

¡Está funcionando! ¡¡Muchas gracias!! –

+5

No es el constructor del hilo. Eso se ejecuta en el contexto de la persona que llama que crea el hilo, no en el contexto del nuevo hilo. Inicialice y desinicialice COM en el método Execute. –

+1

+1 no te olvides de Ariel, prueba CoInicializar; (* code to be ran *) finalmente CoUninitialize; fin; – ComputerSaysNo