Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.05.2011, 07:39
CarnoPhage CarnoPhage вне форума
Прохожий
 
Регистрация: 06.01.2008
Сообщения: 14
Репутация: 10
По умолчанию Потоки в службе

Здравствуйте! Не хотел писать в своем топе про службы, т.к. вопрос немного другой.

Есть поток, у которого есть процедура OnTerminate, если создать такой поток в простом приложении, то нормально отрабатывает execute, потом OnTerminate, и поток прекращает жить.

Но если этот же поток создается в службе, то execute отрабатывает, но завершения не происходит, OnTerminate не вызывается и поток остается в памяти, хотя уже ничего не делает.

Есть какая то особенность в создании потоков в службах?

Поток в службе создается в процедуре ServiceThread, вызываю поток как и всегда

вызов потока
Код:
    Test1:=TThreadTest.Create(true);
    Test1.FreeOnTerminate:=true;
    Test1.Resume;

Описание класса
Код:
type TThreadTest = class(TThread)
  private
    ts:TStringList;
  public
    procedure terminate1(Sender:TObject);
    constructor Create(CreateSuspended: Boolean);
    procedure execute; override;
end;

constructor TThreadTest.Create(CreateSuspended: Boolean);
begin
  inherited;
  ts:=TStringlist.Create;
  onterminate:=terminate1;
end;

procedure TThreadTest.execute;
begin
  inherited;
  ts.Text:='START';
  ts.SaveToFile('d:\!!_start.txt');
end;

procedure TThreadTest.terminate1;
begin
  ts.Text:='END';
  ts.SaveToFile('d:\!!_END.txt');
  ts.Free;
end;

исходник службы слил тут http://www.sql.ru/forum/actualthread...id=340446&pg=5

Подобная проблема на С++ обсуждается тут, но на аглийском не осилил, какой итог, не понял

Последний раз редактировалось CarnoPhage, 24.05.2011 в 09:35.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:54.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter