Einzelnen Beitrag anzeigen

Totaler

Registriert seit: 25. Okt 2003
Ort: Freising
6 Beiträge
 
#3

Re: Threads laufen nicht parallel

  Alt 20. Dez 2008, 12:09
Hallo Alex,

danke für die schnelle Antwort.
Das mit dem Pool muss ich mir mal anschauen, ist eine gute IDEE.

Aber anhand der Klasse mit dem WorkerPoolThread ist mir folgendes aufgefallen.

Wenn man die Threads Synchronized aufruft, werden diese nach einander abgearbeitet, ansonstern laufen Sie parallel.

Irgendewie habe ich das mit dem Synchronized noch nicht ganz verstanden, wann ist es notwendig dies zu verwenden
Zitat aus Quelltext von Workerthread
Delphi-Quellcode:
(*----------------------------------------------------------------------------*
| TWorkerThreadJob ist die Basisklasse für einen Job. Implementiere in der  |
| Execute-Methode die zu erledigenden Arbeiten. Setze ggf. Synchronized      |
| auf False, wenn keinerlei VCL-Controls oder Anzeigen verwendet werden.    |
| Setze UseCOMObjects auf True, falls der Job auf COM-Objekte zugreift.      |
| Dies trifft z.B. bei der Verwendung von ADO-Objekten zu.                  |
*----------------------------------------------------------------------------*)
In seinem Beispiel schreibt er die Ergebnisse in ein MEMO macht dies Default aber unSynchronized und man sieht das die Daten fast zeitgleich im Memo auftauchen.
Sobald ich Synchronized auf True setzte (wollte einfach mal testen) ist der gleiche Effekt wie bei mir, dass die Threads nicht parallel arbeiten sonder nach einander.
Wann muss ich jetzt Synchronized auf TRUE setzen, ist MEMO keine VCL Komponente?

Bei meinem Problem möchte ich mit den mehreren Threads verhindern, dass ein nicht erreichbarer Teilnehmer den kompletten Scann aufhält.

Schönen Advents Samstag
Hans
  Mit Zitat antworten Zitat