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

Вниз

CreateThread   Найти похожие ветки 

 
alvin   (2003-01-01 16:33) [0]

Уважаемые Мастера. Имеется процедура, создающая достаточно большой отчет в Wordе. Поскольку это занимает много времени, хотелось бы запустить ее в отдельном потоке. При попытке запуска потока с помощью CreateThread, выдается сообщение об ошибке "raised exception class EOleSysError with message
"Не был произведен вызов CoInitialize"".
Работаю с Word через word_tlb под Delphi4.


 
Alex Konshin   (2003-01-01 18:15) [1]

Еще раз: используйте BeginThread/EndThread.
Это, правда, не ответ на вопрос, а лишь замечание.

Цитата из MSDN:
CoInitialize
Initializes the COM library on the current thread and identifies the concurrency model as single-thread apartment (STA). Applications must initialize the COM library before they can call COM library functions other than CoGetMalloc and memory allocation functions.

Честно говоря, не знаю, есть ли у Delphi отдельный мозг для инициализации OLE в других нитях, пусть лучше ответят те, кто с этим сталкивался.


 
alvin   (2003-01-02 13:43) [2]

Подключил ActiveX, дописал CoInitialize(nil) и все воркает (не знаю правда, насколько это корректно).
Спасибо, буду чаще заглядывать в HELP


 
asmith   (2003-01-02 18:55) [3]

> Честно говоря, не знаю, есть ли у Delphi отдельный мозг для инициализации OLE в других нитях, пусть лучше ответят те, кто с этим сталкивался.
Нет, Delphi этого не делает. Поэтому для каждого создаваемого потока нужно явно вызвать CoInitialize, а по его завершению - соответственно CoUninitialize.



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
1-38204
SeNtiMeL
2003-02-02 01:45
2003.02.13
позиция текста в RichEdit !


3-38075
Larisa
2003-01-25 15:08
2003.02.13
Запросы на запись и изменение данных производятся очень медлен-,


3-38084
SerjUfa
2003-01-27 14:45
2003.02.13
2 вопроса по TQuery


4-38640
Not complete
2003-01-03 16:12
2003.02.13
Как перевести компьютер в режим Sleep?


1-38192
drin
2003-02-04 13:59
2003.02.13
Ras API