AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Default-Wert aus Funktion nach timeout (D6)

Ein Thema von myicq · begonnen am 31. Jul 2019 · letzter Beitrag vom 31. Jul 2019
Antwort Antwort
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
984 Beiträge
 
Delphi 6 Professional
 
#1

AW: Default-Wert aus Funktion nach timeout (D6)

  Alt 31. Jul 2019, 13:26
Hmm..


Versuchs mal hiermit.

kleine Korrectur für D6

Delphi-Quellcode:
type
  TWorkthread = class(TTHread)
  private // Delphi 6 kennt noch kein strict
    FValue: Integer;
  protected
    procedure Execute; override;
  public
    property Value: Integer read FValue;
  end;

procedure TWorkthread.Execute;
begin
  // code to get the data goes here
  // for now simulate a 10 second delay
  sleep(10000);
  FValue := 666;
end;

function get_value: integer;
const
  OneSecond = 1000;
  DefaultValue = 999;
var
  LResult: dword;
  LWorker : TWorkthread;
begin
  // thread starts running immediately
  LWorker := TWorkthread.Create(False); // TThread benötigt (False) bei D6
  try
    LResult := WaitForSingleObject(LWorker.Handle, OneSecond);
    if LResult = WAIT_OBJECT_0 then
      Result := LWorker.Value
    else if LResult = WAIT_TIMEOUT then begin
      LWorker.FreeOnTerminate := true;
      LWorker := nil;
      //abandon the thread
      Result := DefaultValue;
    end
    else
      raise Exception.CreateFmt('Thread creation failed, wait result was $%x',[LResult]);
  finally
    LWorker.Free;
  end;
end;
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
718 Beiträge
 
Delphi 12 Athens
 
#2

AW: Default-Wert aus Funktion nach timeout (D6)

  Alt 31. Jul 2019, 13:35
Hmm..


Versuchs mal hiermit.

kleine Korrectur für D6
Danke, solche Paläoversionen habe ich halt nicht mehr vorrätig
Peter Below
  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 03:06 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