Forum: Programmieren allgemein
Delphi
by Patrick,
2. Jul 2010
Hmmm...
Eure Antworten sagen mir, dass ihr auch keine bessere Lösung als Polling kennt. Selbst die Bücher, die ich bisher konsultiert habe schlagen Polling vor. Also ist es Polling.
Meine Umsetzung ist ähnlich eurer. Nur verwende ich den WorkerThreadPool und warte in ner Schleife darauf, dass die PendingJobs bei 0 ankommen.
Danke
Forum: Programmieren allgemein
Delphi
by Patrick,
2. Jul 2010
Okay, stellt such vor, ich habe eine neue "InttoStr" (oder irgend eine andere Funktion, die ihr überall in euren Programmen verwendet) Funktion geschrieben, die durch Multithreading schneller arbeitet. (Und stellt euch vor, die Funktion braucht selbst mit Multithreading 1-2 Sekunden Bearbeitungszeit. Läuft der Hauptthread einfach weiter, ist das Ergebnis noch gar nicht berechnet worden. Bleibt er...
Forum: Programmieren allgemein
Delphi
by Patrick,
1. Jul 2010
@ sirius
Jain. Er darf den Code (Aufrufstack) nach meiner Funktion erst abarbeiten, wenn alle Threads fertig sind. Aber ProcessMessages (Synchronizes, usw...) soll er noch annehmen.
@himitsu
Mit WaitFor blockiere ich doch den Thread, der die Funktion aufruft, ergo den Hauptthread. Ist doch ne Semaphore, oder? Ne Semaphore lässt sich an der Stelle leider nicht verwenden, weil dann auch keine...
Forum: Programmieren allgemein
Delphi
by Patrick,
1. Jul 2010
Bliebe doch immer noch das Problem, dass der Hauptthread ungehindert weiter läuft?
Forum: Programmieren allgemein
Delphi
by Patrick,
1. Jul 2010
Ja, so was habe ich mir auch schon überlegt, aber ich habe mich gefragt ob es da nicht was eleganteres gibt. Geht das nicht ohne Polling?
Forum: Programmieren allgemein
Delphi
by Patrick,
1. Jul 2010
Hallo,
Ich möchte eine Funktion parallelisieren. Der Code der die Funktion aufruft ist wurscht. Den Code meiner Funktion kann ich spielend parallelisieren. Aber der Code (Aufrufstack), der nach dem Aufruf meiner Funktion bearbeitet wird, ist der Knackpunkt. Ich weis nicht, was danach passiert. Die Funktion wird an X unterschiedlichen Stellen aufgerufen. Erstelle ich einfach nur Subthreads, die...