Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.011 c
3-47234
wed
2002-06-20 13:54
2002.07.15
файлы *.tps Как их прочитать


14-47742
SleD
2002-06-03 19:40
2002.07.15
---|Ветка была без названия|---


1-47310
shiva502
2002-06-27 14:40
2002.07.15
TEdit не воспринимает Unicode


3-47226
diww
2002-06-20 12:14
2002.07.15
Помогите с запросом


4-47893
MK
2002-05-06 19:56
2002.07.15
Изменения в каталоге





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский