Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   AsyncCalls 2.21 - Inlined VCL/Main Thread Synchronisierung (https://www.delphipraxis.net/113200-asynccalls-2-21-inlined-vcl-main-thread-synchronisierung.html)

Bernhard Geyer 25. Mai 2008 08:45

Re: AsyncCalls 2.21 - Inlined VCL/Main Thread Synchronisieru
 
Delphi Parallel Library

[OT]aber die Phishing-Library ist kein schlechter name. Damit hätte Delphi einen Zielmarkt den mitsicherheit kein normaler IDE/Frameworkhersteller bedienen will :mrgreen: [/OT]

mkinzler 25. Mai 2008 08:50

Re: AsyncCalls 2.21 - Inlined VCL/Main Thread Synchronisieru
 
Ein paar Blogeinträge zur DPL (Delphi Parallel Library)
http://blogs.codegear.com/abauer/2008/01/17/38849
http://blogs.codegear.com/abauer/2008/01/18/38850
http://blogs.codegear.com/abauer/2008/02/06/38855
http://blogs.codegear.com/abauer/2008/02/19/38856
http://blogs.codegear.com/abauer/2008/02/22/38857

himitsu 25. Mai 2008 09:08

Re: AsyncCalls 2.21 - Inlined VCL/Main Thread Synchronisieru
 
ok, dann wäre das auch geklärt ... mir waren ja nur die Buchstaben T<>P irgendwie nicht zusammenpassend genug :mrgreen:

jbg 25. Mai 2008 09:14

Re: AsyncCalls 2.21 - Inlined VCL/Main Thread Synchronisieru
 
Zitat:

Zitat von stoxx
1.Frage .. Was vermutest Du, wieviel Änderungen vorraussichtlich notwendig werden, wennn GodeGear mal auf 64 Bit umstellen sollte?

Der Assembler-Code müsste angepasst werden, da die Register dann 64 Bit breit sind. Das dürfte aber eine Arbeit von Minuten sein. Aber da es noch kein Delphi 64bit gibt, kann ich das ja schlecht schon programmieren.

Zitat:

2. Frage .. hast Du es ausgiebieg mit 3 oder 4 Thread getestet, dass sich da auch nix verhakt? falls EnterMainThread schon aufgerufen wurde, und nun von einem weiteren Thread nochmal aufgerufen werden soll?
Das ganze ist schon abgesichert durch Critical Sections. Zudem wird intern bei EnterMainThread/LeaveMainThread auch nur mit Wasser gekocht und TThread.Synchronize aufgerufen.

mkinzler 25. Mai 2008 09:14

Re: AsyncCalls 2.21 - Inlined VCL/Main Thread Synchronisieru
 
War auch nicht als 1:1 Abkürzung gedacht.

gsh 17. Jun 2008 11:03

Re: AsyncCalls 2.21 - Inlined VCL/Main Thread Synchronisieru
 
So hab das jetzt in meinem projekt eingebaut und ich muss sagen :thumb:
Bin sehr zufrieden damit

Danke jbg

grefab 21. Jun 2008 00:40

Re: AsyncCalls 2.21 - Inlined VCL/Main Thread Synchronisieru
 
Sehr nette Sache! Eine Frage habe ich aber: Ist es möglich, Threads (oder die darin ausgeführten Prozeduren) "mit Gewalt" abzubrechen? Kann ja sein dass das Programm "unterwegs" feststellt, dass die asynchrone Berechnung nicht mehr gebraucht wird, weil sich irgendwas geändert hat und sie eh neu angeworfen werden muss. Dann würde ich gerne den Thread abwürgen und nochmal neu beginnen, ohne das überflüssige Resultat abwarten zu müssen. Könnte allerdings ressourcenfreigabetechnisch stressig werden...

Ich würde jetzt ab und an eine Flagabfrage z.B. in die Ausführungsschleife einbauen. Eleganter wäre es aber, wenn das der "Auftraggeber" der asynchronen Ausführung regeln könnte.

Zacherl 21. Jun 2008 09:11

Re: AsyncCalls 2.21 - Inlined VCL/Main Thread Synchronisieru
 
Funktioniert das ganze auch in mittels CreateThread oder BeginThread erzeugten Threads? Weil du geschrieben hattest, dass letztendlich doch nur die Synchronize Funktion des TThread Objektes aufgerufen wird.

jbg 21. Jun 2008 10:03

Re: AsyncCalls 2.21 - Inlined VCL/Main Thread Synchronisieru
 
Zitat:

Zitat von grefab
Könnte allerdings ressourcenfreigabetechnisch stressig werden...

Nicht nur das. Wenn du den Thread innerhalb einer CriticalSection abwürgst, bekommst du beim nächsten Start des Threads einen Deadlock.

Zitat:

Ich würde jetzt ab und an eine Flagabfrage z.B. in die Ausführungsschleife einbauen. Eleganter wäre es aber, wenn das der "Auftraggeber" der asynchronen Ausführung regeln könnte.
Und genau das sollte man nie machen. Man kann nur beim Thread anfragen, dass dieser sich beenden soll, denn nur er weiß wann es sicher ist, sich zu beenden.

jbg 21. Jun 2008 10:03

Re: AsyncCalls 2.21 - Inlined VCL/Main Thread Synchronisieru
 
Zitat:

Zitat von Zacherl
Funktioniert das ganze auch in mittels CreateThread oder BeginThread erzeugten Threads? Weil du geschrieben hattest, dass letztendlich doch nur die Synchronize Funktion des TThread Objektes aufgerufen wird.

Wie meinst du das? TThread.StaticSynchronize ist eine Klassenmethode, die man auch außerhalb eines TThread Objekts ausrufen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:26 Uhr.
Seite 3 von 4     123 4      

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