SOAP-запрос оставляет зависание потоков - PullRequest
5 голосов
/ 19 марта 2011


когда я делаю запрос SOAP, я вижу (в диспетчере задач), что число потоков моего приложения увеличивается с 1 (основной поток) до 8, это означает 7 дополнительных потоков, эта часть в порядке, однако послеответ получен от службы, количество потоков уменьшается до 4 (3 + основной поток) и остается таким до следующего запроса.Поскольку я не очень доволен SOAP и не слишком много с ним работаю, кто-нибудь знает, нормально ли это или я могу убить / остановить «зависание» потоков?
Использование Delphi 2010

Дополнительная информация: я выполняю запросы в потоке, и да, я вызываю "CoInitialize" и "CoUninitialize" в методе Execute.

Тестовое приложение: http://www.2shared.com/file/_dE4H-lO/soap_test_app.html

Спасибо всемза ваше время.

1 Ответ

1 голос
/ 22 марта 2011

Какая-то другая часть приложения пересчитывает что-то в стеке SOAP.Эти потоки не исчезнут, пока не произойдет остальная очистка.

Что произойдет, если вы вызовете функцию SOAP повторно?Продолжает ли он расти на 3 каждый раз или успокаивается?Если он продолжает расти, вам есть чем заняться.Если нет, это функция низкого уровня и (вероятно) не ваша проблема.Следите за памятью и посмотрите, протекает ли она с течением времени (особенно, когда вы ее забиваете).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...