Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > DLL и потоки!


Автор: heskey 12.4.2005, 12:35
Привет, подскажите кто нибудь как мне остановить на время выполнение DLL???
Я запускаю внутри нее поток, и хочу чтобы пока он не выполнится, DLL ждала! DLL работает как шпион..Может надо семофор сделать..но я ниразу не делал((( если это поможет..то прошу примерчик! smile

Автор: Snowy 12.4.2005, 12:58
Запускаешь поток и ждешь, его завершения.
Делается также, как и запуск и озидания завершения процесса.
И попробуй поиск - недавно вроде тема была.
Если проблема в том, что ты в своей длл не хочешь тормозить общий процесс, тогда не стопори, а проверяй - свободен уже хэндл процесса или еще нет. Хэндл потока и есть тот флаг.

Автор: heskey 12.4.2005, 13:05
Запуск и ожидание завершения процесса делается следующим образом
Код

 ZeroMemory(@si,sizeof(si));
  si.cb:=SizeOf(si);
  CreateProcess( nil,PChar(cmdline),nil,nil,False,0,nil,nil,si,pi )
  WaitForSingleObject( pi.hProcess, INFINITE );
  CloseHandle( pi.hProcess );
  CloseHandle( pi.hThread );

А я поток делаю так
Код

type
  TMyThread = class(TThread)
  protected
    procedure Execute; override;
  end;

...........
TMyThread.Create(false);
...........

как в этом случае приминить WaitForSingleObject?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)