AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi warten bis Thread keine Jobs mehr hat.....
Thema durchsuchen
Ansicht
Themen-Optionen

warten bis Thread keine Jobs mehr hat.....

Ein Thema von Thomas83 · begonnen am 30. Okt 2008 · letzter Beitrag vom 31. Okt 2008
 
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#1

warten bis Thread keine Jobs mehr hat.....

  Alt 30. Okt 2008, 11:29
Servus,

habe da einen Thread. In einer Stringliste speicher ich die jobs ab.
Wenn ich meine Anwendung beende, möchte ich noch warten bis alle Jobs verarbeitet wurden.
also bis count = 0 ist. Nur irgend wie funzt dat nicht so kanz... (funzt nur mit application.processmessage)

hier mal ein wenig code
Delphi-Quellcode:
  TSqlThread = class(TThread)
  private
    fSQLTimer : TTimer;
    Procedure OnSqlTimer(Sender : TObject);
  public
    Function IsEmpty : Boolean;
  protected
    Procedure Execute; override;
  end;


function TSqlThread.IsEmpty: Boolean;
begin
  result := fSqlList.Count-1 <= 0;
end;

procedure TSqlThread.OnSqlTimer(Sender: TObject);
begin
  if fSqlList.Count-1 >= 0 then
  begin
    fcs.Enter;
    try
      fDB.SQLQuery(fSqlList[0]);
      fSqlList.Delete(0);
    finally
      fcs.Leave;
    end;
    if Assigned(fOnWriteSQL) then
      Synchronize(fOnWriteSQL);
  end;
end;

procedure TSqlThread.Execute;
var
  MSG : TMsg;
begin
  inherited;

  while ( GetMessage(msg, 0, 0, 0) ) do
    DispatchMessage(msg);
end;

// aus meiner main rufe ich bei einem thread diese methode auf.
begin
  if fsql <> nil then
    while not fsql.IsEmpty do
    begin
      sleep(100);

      //muss ich machen weil sonst OnSqlTimer nicht aufgerufen wird..
      application.ProcessMessages; //was aber nicht sein darf
    end;
end;
Wenn ich es ohne application.ProcessMessages mache friert meine main auch ein.
Bzw. der Timer vom SQLThread wird nicht aufgerufen......

Mache ich was falsch?
  Mit Zitat antworten Zitat
 


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 16:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz