Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TThread oder BeginThread? (https://www.delphipraxis.net/115687-tthread-oder-beginthread.html)

Zax2030 16. Jun 2008 11:49


TThread oder BeginThread?
 
Hallo,
für ein Chatprojekt brauche ich einige Threads. Nun stellt sich mir die Frage, welche Art ich implementiere. Gibt es irgendwelche Vor- bzw. Nachteile zwischen den beiden Möglichkeiten? Gibt es in WinAPI Threads eine mit Synchronize vergleichbare Möglichkeit?

Danke im Voraus

Gruss

himitsu 16. Jun 2008 12:00

Re: TThread oder BeginThread?
 
Vergleichbares für Synchronize gibt es nicht ... wurde ja speziell in der Delphi-Thread-Klasse für die Delphi-VCL-Synchronisieung entwickelt :wink:

aber du könntest, bei direkter Verwendung der WinAPI, AsyncCalls von jbg verwenden

rollstuhlfahrer 16. Jun 2008 14:22

Re: TThread oder BeginThread?
 
HI,

im Grund sind beide Konsorten gleich sufgebaut, da beide BeginThread nutzen. Für etwas Syncronisize-ähnliches kannst du TCriticalSection oder die hier angesprochene Semaphore.

Bernhard

Muetze1 16. Jun 2008 15:34

Re: TThread oder BeginThread?
 
Zitat:

Zitat von rollstuhlfahrer
im Grund sind beide Konsorten gleich sufgebaut, da beide BeginThread nutzen. Für etwas Syncronisize-ähnliches kannst du TCriticalSection oder die hier angesprochene Semaphore.

Gleiche Basis, ja, aber dennoch unterschiede: Das Synchronize der TThread Ableitungen behindern nicht den VCL Nachrichtenthread. Bei einer CriticalSection behinderst du aber alles andere und greifst auf einen undefinierten Zustand der VCL zu (und genau das, ist das Hauptproblem der VCL in Sachen Thread) -> genau dies wird mit dem Synchronize von TThread unterbunden/verhindert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz