Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2011, 15:01   #11
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

1. gThr.Execute выполняется только один раз и поток засыпает.
2. Непонятно, что делает TConverter.Run.
3. В TConverter.ServiceStop код касательно освобождения потока некорректен - вы не дожидаетесь уничтожения экземпляра, да и не высвобождается поток вызовом Terminate. Уничтожают обычно с помощью FreeAndNil();
4. Выделите основные рабочие методы в класс потока либо в отдельный рабочий класс.
5. А с чего бы оно работало, если вы те объекты, которые высвобождаете в ServiceStop, нигде не создаете?


В общем, автор! Учите мат. часть! Был бы хоть базовый уровень... какие службы?!
"ковыряю изнутри" (с)

Последний раз редактировалось 3D Hunter; 22.11.2011 в 15:05.
3D Hunter вне форума Ответить с цитированием
Старый 22.11.2011, 16:30   #12
Ky3Heu,
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 94
По умолчанию

Базовый уровень есть.. Я же написал что это лишь часть кода и времени нет углубляться.. Читаю и пытаюсь, но ни чего пока что не выходит.
Попробуем проще объяснить.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs;

type
  TService1 = class(TService)
    procedure ServiceStart(Sender: TService; var Started: Boolean);
  private
    { Private declarations }
  public
    function GetServiceController: TServiceController; override;

    //тут процедурки объявлены

    { Public declarations }
  end;


   TMyThr = class(TThread)
  protected

   procedure Execute; override;

  public
    {}
  end;

var
  Service1: TService1;
  gThr :Tmythr;

implementation

{$R *.DFM}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  Service1.Controller(CtrlCode);
end;

function TService1.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

procedure TMyThr.Execute;
begin
  //операторы по конвертации данных
  //создаются всякие там стринглисты
  //вызываются другие процедурки из класса Tservice1 и т.д

  //КАК ЗАСТАВИТЬ ЭТО ОТРАБАТЫВАТЬ РАЗ В 60 СЕКУНД 24 ЧАСА В СУТКИ?????????

end;

procedure TService1.ServiceStart(Sender: TService; var Started: Boolean);
begin
gThr := TMyThr.Create; ///И что делать дальше??????
end;

end.
По ракетам и хоккею - Россияне всех сильней!

Последний раз редактировалось Ky3Heu,; 22.11.2011 в 16:33.
Ky3Heu, вне форума Ответить с цитированием
Старый 23.11.2011, 05:58   #13
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Смотрите личку, отправил туда сообщение.
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 23.11.2011, 11:21   #14
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

ТС, вот вам пример сервиса на основе потока.
Останавливается и запускается на ура.
Вложения
Тип файла: zip SampleOfService&Thread.zip (8.4 Кб, 74 просмотров)
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
vs 2010 и создание службы windows CodeNOT Visual C++ 2 23.05.2011 21:29
Создание службы Windows GenniY Общие вопросы Delphi 2 14.04.2010 13:51
Службы Bat{CMD}_Men Общие вопросы Delphi 0 04.10.2009 14:50
Создание службы в Windows goblinyara Общие вопросы Delphi 8 03.01.2009 19:57
службы bloood Общие вопросы C/C++ 1 02.04.2007 02:04