Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Dll и TThread [D5, D7, WinXP]


Страницы:   1 2 3 4 5 6 7 8 9

dms_main ©   (2004-10-29 10:02:00) 

Уважаемые мастера, обнаружил такой глюк.
Есть класс на основе стандартного 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 в данноим контексте - это совершенно иной вопрос !


Страницы:   1 2 3 4 5 6 7 8 9

Наверх

Титульная страница Поиск, карта сайта Написать письмо