Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   DataSet in eigenen Thread - verbunden mit DataSource und Form (https://www.delphipraxis.net/161329-dataset-eigenen-thread-verbunden-mit-datasource-und-form.html)

DSCHUCH 29. Jun 2011 09:33

DataSet in eigenen Thread - verbunden mit DataSource und Form
 
Hallo,

die VCL ist bekanntermassen nicht Thread-Save. Was passiert, wenn ich ein DataSet->DataSource->DBGrid - Verbund in einem Thread auslagere. Also das Refresh des DataSet in einen eigenen Thread abläuft, die VCL-Komponenten aber indirekt über DataSource damit verbunden sind.

Wird das bereits von Delphi Syncronisiert? Oder klimbert es? Schomal jemand probiert?

Daniel.

joachimd 29. Jun 2011 09:55

AW: DataSet in eigenen Thread - verbunden mit DataSource und Form
 
Zitat:

Zitat von DSCHUCH (Beitrag 1108796)
Hallo,

die VCL ist bekanntermassen nicht Thread-Save. Was passiert, wenn ich ein DataSet->DataSource->DBGrid - Verbund in einem Thread auslagere. Also das Refresh des DataSet in einen eigenen Thread abläuft, die VCL-Komponenten aber indirekt über DataSource damit verbunden sind.

Wird das bereits von Delphi Syncronisiert? Oder klimbert es? Schomal jemand probiert?

Daniel.

DisableControls, aktualisieren, EnableControls

DSCHUCH 29. Jun 2011 11:07

AW: DataSet in eigenen Thread - verbunden mit DataSource und Form
 
heißt also- disablecontrols und enablecontrols sind threadsave, oder muß das dann im hauptthread gemacht werden? ;o)

mjustin 29. Jun 2011 11:15

AW: DataSet in eigenen Thread - verbunden mit DataSource und Form
 
Es kommt auch darauf an ob die Connection Komponente threadsafe ist, daher ist die Antwort von der konkreten Library abhängig. Wenn ein Pool oder eine Connection je Thread verwendet wird, sinken die Risiken natürlich.

DSCHUCH 29. Jun 2011 11:56

AW: DataSet in eigenen Thread - verbunden mit DataSource und Form
 
das ist egal.

stelle dir vor die komponenten machen nichts,

ich raufe aus n threads disable- und enablecontrols auf. nur diese beiden befehle, aber aus subthreads.

damit würde die oberflächen durch alle threads aktualisiert (ab- und angeschaltet). knallts, oder nicht? ^^

joachimd 29. Jun 2011 12:48

AW: DataSet in eigenen Thread - verbunden mit DataSource und Form
 
Zitat:

Zitat von DSCHUCH (Beitrag 1108831)
heißt also- disablecontrols und enablecontrols sind threadsave, oder muß das dann im hauptthread gemacht werden? ;o)

rein aus dem Gefühl raus würde ich das in den Haupt-Thread verlagern. Das mit den anderen Threads sollte nicht stören, da die DB-Komponente ja nur im eigenen Thread arbeitet - und auch nur die davon abhängen Controls von den Befehlen betroffen sind.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:12 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