Ver Mensaje Individual
  #1  
Antiguo 23-04-2007
jmlifi jmlifi is offline
Miembro
 
Registrado: abr 2005
Posts: 188
Reputación: 22
jmlifi Va por buen camino
Post Consulta de MultiHilos ( thread )

Quiero que se repita (infinitamente) en mi aplicación un Thread con un intervalo 20 segundos. Sólo se repite la primera vez.

Codigo:
Código Delphi [-]
unit Gestor1;
interface
uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, Menus, ExtCtrls, Gauges, DB, StdCtrls,
  Buttons, ToolWin, ComCtrls, DBCtrls, Registry, AuxFun, ImgList,FileCtrl,
  FMTBcd, SqlExpr, DBClient, Windows, SqlTimSt, xmldom, Provider, Xmlxform,
  ExportDS, SME2Cell, SME2XML, XMLIntf, msxmldom, XMLDoc, ShellAPI, DBXpress,
  ActiveX, Variants;
type

   TThread6 = class (TThread)
  private
      OwnerHandle: HWND;
      procedure RecepAutoVeriOferta;
  protected
      procedure Execute; override;
  published
      constructor Create(Owner: TForm);
     // destructor Destroy; override;
  end;
  TPrincipal = class(TForm)
    MainMenu1: TMainMenu;
    Clientes1: TMenuItem;
    Clientes: TMenuItem;
    Piezas: TMenuItem;
    ..
    ..
 

procedure TPrincipal.Ejecuta;
var
   i, j, n           : integer;
   Cod, aux, Accesos : String;
   fRec : TSearchRec;
begin
   LeeDatosEntorno;
   Thread6 := TThread6.Create(self);
    ..
    ..    
end;

Constructor TThread6.Create(Owner: TForm);
begin
  inherited Create(false);
  OwnerHandle := Owner.Handle;
  Priority := tpNormal;
  FreeOnTerminate := false;
  suspended := false;
end;
 
 
destructor TThread6.Destroy;
begin
  inherited Destroy;
end;
 
procedure TThread6.Execute;
begin
repeat
  sleep(20000);
  CoInitialize(nil);
  RecepAutoVeriOferta;
  CoUninitialize;
until terminated;
end;


Quitando el procedure destroy también me repite una vez. ¿a qué se debe? me estoy volviendo loco.
saludos

Última edición por jmlifi fecha: 23-04-2007 a las 16:35:36.
Responder Con Cita