AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Sendevorgang blockiert meine Software

Sendevorgang blockiert meine Software

Offene Frage von "skyquaker"
Ein Thema von skyquaker · begonnen am 25. Feb 2007 · letzter Beitrag vom 27. Feb 2007
Antwort Antwort
Seite 2 von 2     12
C.Schoch

Registriert seit: 2. Jan 2006
Ort: Wüstenrot
235 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: Sendevorgang blockiert meine Software

  Alt 27. Feb 2007, 20:40
Hi,
Du bist auf dem richtigen Weg!
Hier mal ein erweitertes Bsp.:
Delphi-Quellcode:
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;
Vor oder nach FreeeandNil kannst du noch Aktionen ausführen z.B.: Fehler auswerten usw.
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 Hier im Forum suchenThreads?
Tschau Christian
Das System hofft auf Besserung
[Siemens]
  Mit Zitat antworten Zitat
skyquaker

Registriert seit: 14. Sep 2006
96 Beiträge
 
Delphi 7 Professional
 
#12

Re: Sendevorgang blockiert meine Software

  Alt 27. Feb 2007, 21:04
Zitat von C.Schoch:
Hi,
Du bist auf dem richtigen Weg!
Hier mal ein erweitertes Bsp.:
Delphi-Quellcode:
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;
Vor oder nach FreeeandNil kannst du noch Aktionen ausführen z.B.: Fehler auswerten usw.
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 Hier im Forum suchenThreads?
THX ! Weds morgen ausprobieren

Ja ich hab mir schon einige Dinge über Threads angeschaut, habs aber net hingekriegt. *schäm*
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:35 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