Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TParallels For-Schleife abbrechen (https://www.delphipraxis.net/196074-tparallels-schleife-abbrechen.html)

KodeZwerg 21. Apr 2018 20:21

AW: TParallels For-Schleife abbrechen
 
Ich vermute es sind mehr als in Bedingung steht weil da der von Uwe genannte "Kernel werden erstmal ausgenutzt" effekt aktiv ist, könnte das sein?

Sherlock 23. Apr 2018 07:57

AW: TParallels For-Schleife abbrechen
 
Ist es nicht ein grundsätzliches Problem? Eine For-Schleife benutzt man, wenn man genau weiß, wie oft eine Schleife ausgeführt werden soll, für alles andere nimmt man repeat oder while. Ein Abbrechen von For-Schleifen ist zwar möglich, aber IMHO schlechter Stil, und scheint sich im TParallel-Fall zu rächen.

Sherlock

Uwe Raabe 23. Apr 2018 08:28

AW: TParallels For-Schleife abbrechen
 
Zitat:

Zitat von Sherlock (Beitrag 1400201)
Ist es nicht ein grundsätzliches Problem? Eine For-Schleife benutzt man, wenn man genau weiß, wie oft eine Schleife ausgeführt werden soll, für alles andere nimmt man repeat oder while. Ein Abbrechen von For-Schleifen ist zwar möglich, aber IMHO schlechter Stil, und scheint sich im TParallel-Fall zu rächen.

So krass würde ich das nicht formulieren. Ich finde es z.B. kein schlechtes Design, wenn beim Durchsuchen eines Arrays eine For-Schleife verwendet wird und bei dem gesuchten Element ein Break stattfindet. Die Elemente werden über einen Index angesprochen und die Bereichsgrenzen sind im Voraus bekannt. Die Abbruchbedingung beschränkt sich auf das eigentliche Suchkriterium und muss sich nicht noch um die Bereichsgrenzen kümmern. Das reduziert den Code, ist klar strukturiert und jeder sieht sofort, was mit dieser Schleife bezweckt wird. Bei while- und repeat-Schleifen sehe ich auch oft eine Duplizierung der Abbruchbedingung (manchmal gecached in einer lokalen Variable), weil beim Abbruch bestimmte Code-Teile innerhalb der Schleife nicht mehr durchlaufen werden müssen. In solchen Fällen ziehe ich ein Break (selbiges gilt auch für Continue) vor - auch innerhalb while- und repeat-Schleifen.

Allerdings eignet sich so eine Schleife dann halt nicht für die Parallelisierung (aber auch keine mit while oder repeat).

Bei einem Parallel-For geht man eigentlich davon aus, daß alle Elemente vollkommen autark bearbeitet werden und keine gegenseitigen Wechselwirkungen haben. Ich weiß allerdings nichts über den angesprochenen Fall.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr.
Seite 2 von 2     12   

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