AGB  ·  Datenschutz  ·  Impressum  







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

Frage zu TCriticalSection

Ein Thema von Errraddicator · begonnen am 25. Sep 2008 · letzter Beitrag vom 29. Sep 2008
 
Errraddicator

Registriert seit: 26. Jun 2008
161 Beiträge
 
Delphi 2007 Professional
 
#1

Frage zu TCriticalSection

  Alt 25. Sep 2008, 16:57
Hiho,

ich habe 1 Programm, das aus 1 Fenster und 2 dazugehörigen Threads besteht.
Das Fenster erstellt anfangs eine Liste (clientList) an Mandanten, die verarbeitet werden sollen.
Dann erzeugt es 2 Threads (TWorkerThread) welche dann diese Liste abwechselnd abarbeiten sollen.

Jetzt habe ich im Fenster 2 Funktionen, auf die die Beiden Threas zugreifen müssen.
- function TfrmMain.getNextClient(): String;
Diese Funktion gibt den 1. Eintrag aus clientList zurück und löscht diesen dann aus der Liste.
Diese Funktion soll halt so lange von beiden Threads in beliebiger Reihenfolge aufgerufen werden,
bis die Liste abgearbeitet ist.

- procedure TfrmMain.updateStatus(msg: String; panelNr: Integer);
Diese Funktion schreibt wie der Name sagt einen String in das Panel <panelNr> der TStatusBar.
Jeder Thread hat dabei 1 eigenes Panel, in das er Statusmeldungen schreibt.

In welcher Form muss ich da jetzt Critical Sections einbinden, dass sich die Threads nicht beim Zugriff auf diese beiden Funktionen behaken, sondern wie gewünscht funktionieren?

...

Ich hab zuerst versucht, die TCriticalSection in den entsprechenden Funktionen selbst einzubinden.
Das funktioniert dann 1, 2 x und dann hängt sich das Programm beim Aufruf dieser Funktionen auf.

Dann habe ich es versucht, die CriticalSection in meiner Thread.Execute() Funktion um die Funktionsaufrufe drumherum zu setzen, aber dann funktioniert das gar nicht mehr.

Hat wer ne Idee?


Besten Dank im Voraus

cu Patrick
  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 01:26 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