![]() |
TThread und Exceptions
Guten Morgen.
In diesem Thread ![]() |
Re: TThread und Exceptions
Du könntest eine Nachricht schicken oder eine Flöag setzten, welches du abfragst, .... Der Fantasie sind keine Grenzen gesetzt. ;)
|
Re: TThread und Exceptions
Was passiert eigentlich, wenn in einem Thread eine Exception auftritt. Bekommt der Haupt-Thread diese mit? Ich habe jetzt in TThread im Prinzip folgendes Konstrukt:
Delphi-Quellcode:
Oder sollte man den den Aufruf des Threads in Try/Except einschließen?
try
sStatusBarText := 'Erstelle tmp_StartVtr'; Synchronize(SetStatusBarText); . . diverses Queris ausführen . . except on E: EOleException do begin sStatusBarText := 'Fehler bei Auswählen der Quelldatensätze' + #13#10 + E.Message + #13#10 + 'Bitte Eingaben überprüfen:' + #13#10 + ' Alias ' + fMain.edSourceDB.Text + #13#10 + ' User ' + fMain.edSourceUser.Text; StrPCopy(cDummy, sDummy); Application.MessageBox(cDummy, 'Fehler', MB_ICONERROR); fMain.edSourceDB.SetFocus; sStatusBarText := 'Mit Fehler beendet'; Synchronize(SetStatusBarText); fMain.DropTempTables(); exit; end; end; |
Re: TThread und Exceptions
Ich hab gute Erfahrungen mit der folgenden Konstruktion gemacht:
Delphi-Quellcode:
dabei ist ExceptionString eine Variable des Thread
procedure TThreadA.SyncException;
begin Application.MessageBox (pchar (ExceptionString) , 'Exception', MB_OK); end; procedure TThreadA.Execute; begin try ... except on E: Exception do begin ExceptionString := E.Message; Synchronize (SyncException); end; end; end; mfg derDan |
Re: TThread und Exceptions
Im Prinzip kannst du das so machen.
allerdings sooltest du nicht auf Variablen oder Funktionen der/des anderen Threads zugriffen. Also Ausnahme gilt diese Synchronize Methode. Wichtife Felder der Main - Form würde ich in Thread Variablen kopieren bevor der Thread gestartet wird. alles andere mit der Synchronize Methode synchronisieren. Exceptions aus einem Thread sehen die anderen Threads nicht auch nicht der Haupt Thread. mfg DerDan |
Re: TThread und Exceptions
Hallo Dan,
danke für den Tip. Habe mein Programm entsprechend geändert. Bauchschmerzen habe ich allerdings noch mit dem SetFocus. Darf ich aus dem Thread heraus? |
Re: TThread und Exceptions
Zitat:
...:cat:... |
Re: TThread und Exceptions
Könnte gehen mit SetFocus,
würd ich aber vermeiden! ich kann nichts mehr _nicht_ leiden als das ich in Word oder so was tippe und irgendein Programm meint es müsse nun den Focus bekommen. egal aus welchem Grund. Da gibts auch noch eine Möglichkeit, das die Title Bar blinkt. derDan |
Re: TThread und Exceptions
Zitat:
|
Re: TThread und Exceptions
Zitat:
...:cat:... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr. |
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 by Thomas Breitkreuz