AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi IdHttp Thread nach destroy ende!
Thema durchsuchen
Ansicht
Themen-Optionen

IdHttp Thread nach destroy ende!

Ein Thema von gandime · begonnen am 4. Sep 2008
Antwort Antwort
gandime
(Gast)

n/a Beiträge
 
#1

IdHttp Thread nach destroy ende!

  Alt 4. Sep 2008, 22:46
Hi,
ich habe das Problem, das nachdem ich einen Thread mit destroy beende Macht meine Schleife nicht weiter!
Hier einmal der Code
Thread:
Delphi-Quellcode:
unit UntHtThread;

interface

uses
  Windows, SysUtils, Classes, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
  IdBaseComponent,IdURI;

type
  THtThread = class(TThread)
  private
    HT: TIdHTTP;
    FURL: string;
    FId: Integer;
  protected
    procedure Execute; override;
  public
    constructor Create(CreateSuspended: Boolean);
    destructor Destroy; override;
    property URL: String read FURL write FURL;
    property IId: Integer read FId write FId;
  end;

implementation
uses
  UntSearch;

constructor THtThread.Create;
begin
  inherited Create(True);
  ht := TIdHTTP.Create(nil);
  ht.HandleRedirects:=True;
  ht.RedirectMaximum:=15;
  ht.Request.UserAgent:='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)';
end;

destructor THtThread.Destroy;
begin
  ht.Free;
  inherited Destroy;
end;

procedure THtThread.Execute;
var
  s:string;
begin
try
  s:=ht.Get(TIdURI.URLEncode(FURL));
  FrmSearch.Fertig(FURL,s,FId);
end;


end.
Main:
Delphi-Quellcode:
var
  ht: array of THtThread;

procedure TFrmSearch.Fertig(SUrl,SOk:string;IId:integer);
begin
//etwas machen^^
  if INow<=SlListe.count then
  begin
    try
      ht[IId].Destroy;//hiernach wird nicht weiter gemacht nichtmal wenn ich überall Breakpoints setzte
    except
    end;
    ht[IId]:=ThtThread.Create(true);
    ht[IId].URL:=SlListe[INow];
    ht[IId].IId:=IId;
    ht[IID].FreeOnTerminate:=true;
    ht[IId].resume;
  end;
end;//nichtmal hier

//So wirdder Thread aufgerufen:

  setlength(ht,strtointdef(edThreads.text,10));
  for I := 0 to strtointdef(edThreads.text,10)-1 do
  begin
    ht[i]:=ThtThread.Create(true);
    ht[i].URL:=SlListe[INow];
    ht[i].IId:=i;
    ht[i].FreeOnTerminate:=true;
    ht[i].Resume;
  end;
was mache ich falsch?


mfg

gandime
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz