![]() |
Re: Sendevorgang blockiert meine Software
Hi,
Du bist auf dem richtigen Weg! Hier mal ein erweitertes Bsp.:
Delphi-Quellcode:
Vor oder nach FreeeandNil kannst du noch Aktionen ausführen z.B.: Fehler auswerten usw.
var
MailThread : TMailThread; dwWaitResult : DWORD; begin MailThread := TMailThread.Create(true,Email,Opendiag.filename,globalcnt); MailThread.Resume; // Suspendeder Thread muss auch aufgeweckt werden repeat // Auf Thread warten dwWaitResult := WaitForSingleObject(MailThread.Handle, 100); if dwWaitResult <> WAIT_OBJECT_0 then begin if dwWaitResult = WAIT_FAILED then //Abbrechen wenn fehlgeschlagen break; Application.ProcessMessages; // GUI aktualisieren end; until dwWaitResult = WAIT_OBJECT_0; // keinen Thread mehr zum warten FreeandNil(MailThread); // Thread freigeben end; Das Thread Objekt "MailThread" würde ich global definieren so kannst du auch vom Abbrechen Button drauf zugreifen. Jeder Thread besitzt außerdem die Eigenschaft Terminated mit der dieser abgebrochen werden kann. Den abbruch einer laufenden Übertragung musst du IMO im OnTerminate vornehmen. Wo der Runtime Error herkommt weis ich auch nicht, aber neue Frage neuer Thread! P.S.: Einfach mal nach TThread in der Delphi Hilfe schauen. P.P.S.: Hast du eigentlich schon mal die DP Suche benutzt ![]() |
Re: Sendevorgang blockiert meine Software
Zitat:
Ja ich hab mir schon einige Dinge über Threads angeschaut, habs aber net hingekriegt. *schäm* |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 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-2025 by Thomas Breitkreuz