![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Dll и TThread [D5, D7, WinXP]
dms_main © (2004-10-29 10:02:00)
Страницы: < 1 2 3 4 5 6 7 8 9 >
Уважаемые мастера, обнаружил такой глюк.
Есть класс на основе стандартного Tthread,
креатится так:
constructor tmythread.create;
begin
inherited create(false);
end;
Проблема в том , что в dll невызывается execute, хотя в console Application все работало замечательно.
Как лечить?
Reindeer Moss Eater (2004-10-29 16:54:00) [41]Парень, сколько раз можно повторять, что у тебя не создается экземпляр, потому и нет execute.
А в отладчике есть создание потому что IDE загружает библиотеку первая.
dms_main (2004-10-29 16:51:00) [42]В console Application тотже код работает без проблем.
dms_main (2004-10-29 16:50:00) [43]Мастера - насчет отладки - в execute создается файл - нету этого файла - несоздается он > execute не выполняется.
Добрый дядька (2004-10-29 16:50:00) [44]>dms_main © (29.10.04 16:48)
(зачем смысл то тотже)
А ты не думаешь, что у тебя может быть проблема в коде, который ты используешь? Например, при работе с файлом?
dms_main (2004-10-29 16:48:00) [45]> Добрый дядька - нет исправил свой в точности с указаниями
(зачем смысл то тотже)
Reindeer Moss Eater (2004-10-29 16:47:00) [46]Добрый дядька ©
Он в IDE его отлаживает если помнишь.
dms_main (2004-10-29 16:46:00) [47]
> >Reindeer Moss Eater © (29.10.04 16:40)
>
> И что же ей мешает?
>
> Я думаю, возникающий Exception, в результате чего процесс
> успешно терминируется системой вместе с вновь созданным(или
> не успевшим создаться) потоком.
Странно - никаких исключений и ошибок я не наблюдаю......
Добрый дядька (2004-10-29 16:46:00) [48]>dms_main © (29.10.04 16:44)
Т.е. ты в точности создал проект с кодом библиотеки и вызовом?
Добрый дядька (2004-10-29 16:45:00) [49]>Reindeer Moss Eater © (29.10.04 16:44)
Что-то мы про это не слышали от приглашенного актера
А что же вы слышали от приглашенного актера? что его консольное приложение стартует и тут же заканчивается? Так на это можно было не обратить внимание.
dms_main (2004-10-29 16:44:00) [50]
> Добрый дядька © (29.10.04 16:43) [116]
> >dms_main © (29.10.04 16:41)
>
> Ты мой код попробовал? Выполняется?
выполняется create, а execute - нет.
Reindeer Moss Eater (2004-10-29 16:44:00) [51]в результате чего процесс успешно терминируется
Что-то мы про это не слышали от приглашенного актера
Добрый дядька (2004-10-29 16:43:00) [52]>dms_main © (29.10.04 16:41)
Ты мой код попробовал? Выполняется?
Добрый дядька (2004-10-29 16:42:00) [53]>Reindeer Moss Eater © (29.10.04 16:40)
И что же ей мешает?
Я думаю, возникающий Exception, в результате чего процесс успешно терминируется системой вместе с вновь созданным(или не успевшим создаться) потоком.
dms_main (2004-10-29 16:41:00) [54]
> Поток создается с Inherited(False), поточная функция просто
> не успевает начать выполняться.
>
> И что же ей мешает?
Да же если create(true) а потом resume - толку нет. :-(
Reindeer Moss Eater (2004-10-29 16:40:00) [55]Поток создается с Inherited(False), поточная функция просто не успевает начать выполняться.
И что же ей мешает?
dms_main (2004-10-29 16:37:00) [56]
>
> ЭТО к чему ? опять стрелки переводишь ?
> какое отношение состояние открытости IDE-окна имеет к проблеме
> ?
открывается окно загруженных модулей - так в своем делаешь Reload Symbol Table
Digitman (2004-10-29 16:36:00) [57]
> ctrl+alt+m
ЭТО к чему ? опять стрелки переводишь ?
какое отношение состояние открытости IDE-окна имеет к проблеме ?
dms_main (2004-10-29 16:35:00) [58]
> мы тут о чем говорим ? о твоем утверждении, что Execute
> у тебя якобы не вызывается !
смотри 93 мессагу
Добрый дядька (2004-10-29 16:35:00) [59][103] Reindeer Moss Eater © (29.10.04 16:29)
Добрый дядька © (29.10.04 16:28) [101]
Это не объясняет феномен невызова Execute
Именно объясняет.
Поток создается с Inherited(False), поточная функция просто не успевает начать выполняться.
Digitman (2004-10-29 16:33:00) [60]
> dms_main © (29.10.04 16:26) [99]
> а если мне надо дождаться его завершения?
да ёшкин кот !!
мы тут о чем говорим ? о твоем утверждении, что Execute у тебя якобы не вызывается !
какого рожна ты стрелки переводишь на не имеющее отношения к проблеме строчку ? мало ли что там у тебя торчит в коде следом за конструктором потока ! ты стартовал поток как not suspended, исключения ты не получил при вызове конструктора, значит Execute обязанбыл получить управление ! И абсолютно неважно, что у тебя там стоит следующей строчкой ! Правильность логики вызова WaitFor в данноим контексте - это совершенно иной вопрос !