Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Berechnungs-Threads die lesend auf Dynamische Arrays zug

  Alt 15. Mai 2009, 09:36
Zitat von tobias_sdr:
Der Zugriff auf den Pool erfolgt über Semapore und das Lesen und Schreiben über Mutex. Ich dachte auch, dass der Fehler da liegt.
Ich würde die Semapore durch TCriticalSection ersetzen und wirklich jeden lesenden und schreibenden Zugriff auf den Pool darüber nur innerhalb von Enter und Leave.

WaitForSingleObject(ajobList.fEventJob.Handle,5000 );
Ist sichergestellt, das wirklich alle Jobs bereits durch einen Thread bearbeitet werden/wurden?

WaitForSingleObject(MyThreadSemaphore.fEventThread .Handle,5000);
Ist sichergestellt, das wirklich der letzte Thread beendet wurde?

Zitat von tobias_sdr:
Wenn ich aber die Berechnungseinheit der Threads in eine Exception kapsele wird der Fehler abgefangen.
Es tritt also tatsächlich ein Fehler auf, wie lautet die Fehlermeldung? Zugriffsverletzung?
Ich würde den Fehler auf jeden Fall bei den oben genannten Punkten suchen.

Zitat von tobias_sdr:
Zu deinem Vorschlag
Zitat:
Allerdings würde ich es vermeiden den Referenzzähler von Strings, Arrays oder Interfaces dabei zu verändern.
Leider weiß ich nicht, wie ich das machen soll?
Zitat:
Wenn solche Werte als Parameter übergeben werden, dann nach Möglichkeit immer als const-Parameter.
Das kann aber kein Ursache für die Exception sein.
  Mit Zitat antworten Zitat