Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.15;
Скачать: CL | DM;

Вниз

SOS. MSHTML в дауне...   Найти похожие ветки 

 
w666w ©   (2002-07-02 10:40) [0]

Опытные разработчики мультитредовых приложений, использующих COM объекты (в данном случае mshtml.dll)! Помогите разобраться с проблемой, над которой я бьюсь уже болше полугода и не вижу даже свет в конце туннеля...

Сутьпроблемы в следующем:

Есть мультитредовый проект. Каждый поток порождает объект UI-less парсер (взятый с <a href=" http://www.euromind.com/iedelphi/uilessparser.htm">EuroMind</a>). Все что нужно сделать каждому потоку - взять html документ, дождаться полной его загрузки, вернуть результат в виде коллекции HTML элементов (IHTMLElementCollection). Этот процесс происходит в бесконечном цикле внутри каждого потока.

Когда запущен 1 поток, все ОК. Но когда добавляешь еще, со временем происходит подвисание проги. Причем подвисание довольно интересного вида - при попытке закрыть приложение, работа ВСЕХ ПОТОКОВ ПРОДОЛЖАЕТСЯ. Т.Е. программа как бы снова оживает. Но опять не на долго.

По всей видимости имеет место какая-то проблема из следующих

1) Неправильно создан COM в рамках потока
2) Неправильно синхронизированы потоки и методы, в них происходящих.
3) Неправильно организована работа с сигналами (PostThreadMessage и т.п.)

Возможно специалист в области COM программирования обнаружит еще какую-нибудь ошибку, но я вижу только эти...

Проект не сложный, Но ввиду невозможности публиковать здесь весь код приложения, даю ссылку на ZIP файл. Только simple_html.htm нужно положить именно в то место, которое прописано в коде программы (именно этот файл загружается каждым потоком). По умолчанию это "C:\simple_html.htm". Проект <a href=" http://www.ncstu.ru/sample.zip">здесь</a>


 
int64 ©   (2002-07-02 15:58) [1]

Ты используешь глобальную переменную Doc : IhtmlDocument2.

Каждый школьник знает, что бывает при использовании глобальных переменных в потоках.

Перерисуй её в класс TUILess.



Страницы: 1 вся ветка

Текущий архив: 2002.07.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
6-47648
Каспер
2002-04-16 06:05
2002.07.15
Пересылка файлов по сети.


3-47088
Adventure
2002-06-12 11:04
2002.07.15
***** Вопрос с СПЕЦИАЛИСТАМ по базам данных!


14-47783
Севостьянов Игорь
2002-06-03 19:12
2002.07.15
Где найти компонент HexGrid ???


1-47566
Blacki
2002-06-27 21:55
2002.07.15
Как заскиновать ScrollBar in Memo


4-47912
Girl
2002-05-11 17:43
2002.07.15
Вывод иконки на чужое окно