2011-03-19 14 views
5


cuando realizo una solicitud SOAP puedo ver (en el administrador de tareas) que el número de subprocesos de mi aplicación aumenta de 1 (el hilo principal) a 8, esto significa 7 hilos adicionales, esta parte es OK, sin embargo, después de que se recibe la respuesta del servicio, el número de subprocesos disminuye a 4 (3 + subproceso principal) y se mantiene así hasta que se realiza la siguiente solicitud. Como no me siento cómodo con SOAP y no he trabajado demasiado con él, ¿alguien sabe si esto es normal o si puedo matar/detener los hilos "colgantes"?
Usando Delphi 2010La solicitud SOAP deja hilos colgando

Información adicional: Estoy ejecutando las solicitudes en un hilo y sí llamo "CoInicializar" y "CoUninitializar" en el método Ejecutar.

aplicación de la prueba: http://www.2shared.com/file/_dE4H-lO/soap_test_app.html

Gracias a todos por su tiempo.

+0

¿Estás creando subprocesos en tu aplicación? La razón por la que pregunto es que es muy útil ejecutar solicitudes SOAP en un hilo, por lo que no bloqueará su aplicación principal. –

+0

@Chris lo siento, me olvidé de mencionar esto por alguna extraña razón, SÍ estoy ejecutando las solicitudes en un hilo y estoy creando objetos de forma dinámica y liberándolos. – ComputerSaysNo

+0

¿Puedes proporcionar un poco de código de ejemplo? De esa forma podemos intentar reproducir su caso y ver qué bandas se mantienen activas. Por cierto: puede usar [Process Explorer] (http://technet.microsoft.com/en-us/sysinternals/bb896653) para ver qué hilos están activos. –

Respuesta

1

Alguna otra parte de la aplicación está contando algo en la pila SOAP. Esos hilos no desaparecerán hasta que ocurra el resto de la limpieza.

¿Qué sucede si llama a la función SOAP repetidamente? ¿Continúa creciendo en 3 cada vez o se calma? Si continúa creciendo, tienes algo que hacer. Si no, es una función de bajo nivel y (probablemente) no su problema. Vigile la memoria y vea si se pierde con el tiempo (especialmente cuando la martillea).

+0

el número de subprocesos (después de la segunda llamada) aumenta y disminuye en 2 para cada solicitud, sobre la pérdida de memoria: no estoy seguro aún si se filtra, lo sabré en un día o dos. – ComputerSaysNo

+0

use 'perfmon' para averiguar si está filtrando algo – ethrbunny

+0

¿puede proporcionar un enlace, por favor? – ComputerSaysNo

Cuestiones relacionadas