AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Eine max. Thread-Lebenszeit festlegen?
Thema durchsuchen
Ansicht
Themen-Optionen

Eine max. Thread-Lebenszeit festlegen?

Ein Thema von 7down · begonnen am 8. Apr 2007 · letzter Beitrag vom 8. Apr 2007
Antwort Antwort
7down

Registriert seit: 27. Jan 2007
13 Beiträge
 
#1

Eine max. Thread-Lebenszeit festlegen?

  Alt 8. Apr 2007, 04:21
Hallo Leute!

Ich muss eine Art Timeout für mehrere Threads der selben Klasse coden..
Was ich erreiche möchte: Sobald der Thread länger als x Minuten am leben ist, soll er terminiert werden.

Wie würdet ihr sowas machen?

Danke!
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#2

Re: Eine max. Thread-Lebenszeit festlegen?

  Alt 8. Apr 2007, 05:02
Moin!

Ich würde per MSDN-Library durchsuchenTimeGetTime beim Threadstart die Zeit nehmen und in der .Execute die gewünschte Lauftzeit dazuzählen und wenn diese überschritten ist den Thread beenden.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
7down

Registriert seit: 27. Jan 2007
13 Beiträge
 
#3

Re: Eine max. Thread-Lebenszeit festlegen?

  Alt 8. Apr 2007, 10:09
Ne, ich muss das seperat (in einem einzelnen Thread oder so) machen, für den Fall dass der Thread sich aufhängt oder ähnliches.
Der Timeout muss es dann trotzdem schaffen den Thread zu restarten.

Wie macht man sowas?
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Eine max. Thread-Lebenszeit festlegen?

  Alt 8. Apr 2007, 15:04
Die simpelste Variante (simpel aber weder elegant, noch besonders effizient, dafuer aber einfach zu realisieren wenn die Anzahl Threads überschaubar bleibt) ist es, für jeden Workerthread einen Monitorthread zu erzeugen. Der wartet dann mittels WaitForSingleObject auf die Beendigung des Workerthreads, WaitForSingleObject bekommt auch einen Timeout-Parameter mit übergeben. Den Rückgabewert dann noch entsprechend auswerten und den Workerthread ggf. abwürgen und neu starten. Nebenbei bemerkt sollte ein abgestorbener Thread aber eher die Ausnahme als die Regel sein
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  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 07:48 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