AGB  ·  Datenschutz  ·  Impressum  







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

Rückgabewerte von TCriticalSection?

Ein Thema von BKempf · begonnen am 9. Nov 2004 · letzter Beitrag vom 16. Nov 2004
 
BKempf

Registriert seit: 1. Jun 2004
103 Beiträge
 
Delphi 6 Enterprise
 
#1

Rückgabewerte von TCriticalSection?

  Alt 9. Nov 2004, 00:14
Ein Thread besitzt einen TTimer und dessen OnTimer-Methode soll alle 50ms einen kleinen Teil einer größeren Aufgabe (Aufräumen von Datenbanken) durchführen (um diese eigentlich sehr plattenintensive Aktion über einen langen Zeitraum zu strecken). Kann ich dafür TCriticalSection verwenden?

Mein Problem ist, daß alle Ereignisse im Kontext desselben Threads stehen, d.h. wenn ich
Delphi-Quellcode:
cs.Enter;
TuWas;
cs.Leave;
schreibe und TuWas so lange dauert, daß der nächste ausgelöste Event wieder
cs.Enter; ausführen will, dann beißt sich der Thread selbst in den Schwanz und bleibt hängen, weil die letzte Instanz der Methode darauf wartet, daß die vorherige cs wieder unlockt (was sie aber nicht tun kann, da momentan die zweite Instanz ausgeführt wird).

Daher bräuchte ich sowas wie
Status:=cs.Enter; das die CriticalSection nicht nur nötigenfalls lockt, sondern mir auch gleich mitteilt, ob sie vorher schon gelockt war oder nicht (und das vor allem nicht durch Multitasking unterbrechbar ist). Entsprechend würde ich nur im zweiten Fall TuWas ausführen und im ersten einfach nichts tun.

Kann TCriticalSection das? Ich kenne nur "Enter" und "Leave" und habe sonst auch nichts in der OH gefunden. Gibt es evtl. andere Typen, die die genannte Funktion haben?
The problem with troubleshooting is that sometimes the trouble shoots back.
  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 03:28 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