AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TCriticalSection und Timeout

Ein Thema von SubData · begonnen am 26. Mai 2005 · letzter Beitrag vom 30. Mai 2005
Antwort Antwort
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#1

TCriticalSection und Timeout

  Alt 26. Mai 2005, 15:13
Morjn...

Hat jemand ne Idee wie man einer CriticalSection einen Timeout zuweisen kann?
Das Programm soll x Sekunden auf eine kritische Sektion warten und falls die Zeitspanne überschritten wird, soll der Code der in der kritischen Sektion steht nicht ausgeführt werden.

Ich möchte dafür nicht unbedingt einen Timer verwenden...
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#2

Re: TCriticalSection und Timeout

  Alt 26. Mai 2005, 18:31
ein Timeout ist meines Wissens mit CriticalSections nicht realisierbar... ausser Du pollst mittels TryEnter eine gewisse Zeit lang, bis die Section entweder frei wird, oder die Zeit abgelaufen ist (nicht gerade eine schöne Lösung; viele Context-Switches für nichts und wieder nichts)...
besser wäre es, dazu ein Mutex zu verwenden... beim "Betreten" des Mutex mit WaitForSingleObject kannst Du auch ein Timeout definieren....

MSDN-Library durchsuchenCreateMutex
MSDN-Library durchsuchenWaitForSingleObject
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: TCriticalSection und Timeout

  Alt 27. Mai 2005, 09:52
Klingt gut, das werd ich mir mal ansehen...

TryEnter gibs bei D7 EP übrigens nicht :/
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#4

Re: TCriticalSection und Timeout

  Alt 27. Mai 2005, 12:25
Zitat von SubData:
Klingt gut, das werd ich mir mal ansehen...

TryEnter gibs bei D7 EP übrigens nicht :/
oha... diese Methode gibts demfalls erst ab D2k5...

MSDN-Library durchsuchenTryEnterCriticalSection wäre die entsprechende API Function
  Mit Zitat antworten Zitat
MosiXXL
(Gast)

n/a Beiträge
 
#5

Re: TCriticalSection und Timeout

  Alt 27. Mai 2005, 21:09
So gehts mit TEvent (syncobjs)

Delphi-Quellcode:
  case lvEvent.WaitFor(1000) of
    //Das Signal für das Ereignisobjekt wurde gesetzt.
    wrSignaled :;
    //Die im Parameter TimeOut angegebene Zeitspanne ist verstrichen, ohne dass das Signal gesetzt wurde.
    wrTimeOut   :;
    //Das Ereignisobjekt wurde gelöscht, bevor das TimeOut-Intervall verstrichen ist.
    wrAbandoned   :;
    //im Warten ist ein Fehler aufgetreten. Überprüfen Sie die Eigenschaft LastError. Der Fehlercode in LastError enthält nähere Informationen.
    wrError   :;
    end;
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: TCriticalSection und Timeout

  Alt 30. Mai 2005, 06:07
Ui das is genau das was ich brauche... Super, danke :>
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 17:32 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