AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Prüfen ob Thread noch läuft

Ein Thema von Schwedenbitter · begonnen am 24. Jan 2007 · letzter Beitrag vom 9. Feb 2009
 
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#1

Prüfen ob Thread noch läuft

  Alt 24. Jan 2007, 14:44
Hallo,

ich möchte mittels meines Programms Dateien verschieben. Da es viele Dateien sein können und ich das ganze über einen langsamen VPN-Tunnel machen muss, würde das Programm ewig still stehen. Aus diesem Grunde habe ich die Prozeduren für das Kopieren und Löschen der Dateien in einen Thread gepackt. So weit - so gut. Allerdings habe ich immer noch folgende Probleme:

Da das Verschieben im Thread stattfindet, könnte es passieren, dass der Benutzer das Fenster schließt und das Programm damit beendet. Dann bestünde aber die Gefahr, dass offene Dateien zurückblieben, was auf die Dauer gesehen sehr unschön wäre. Die Eigenschaft Terminated gibt mir leider nur zurück, ob der Thread beendet werden soll. Aber nicht ob und wann er es nach dem Abarbeiten seiner Aufgaben selbst macht. Andere brauchbare Eigenschaften konnte ich in der Hilfe nicht finden. Ich habe mir bisher über eine globale Variable geholfen. Diese wird vor Ausführung des Thread auf True gesetzt und im Thread nach dem letzten Befehl erst auf False.

Gibt es bessere Methoden und falls ja, welche?

Außerdem bekomme ich beim Beenden des Programms hin und wieder die Fehlermeldung Exception der Klasse EOSError aufgetreten / Systemfehler. Code: 1400 Ungültiges Fensterhandle.

Was hat das zu bedeuten?

Schließlich habe ich trotz Verwendung eines Thread immer noch nicht in den Griff bekommen, dass sich das Fenster flüssiger bewegen lässt. Mir ist klar, dass BlockRead und BlockWrite bewusst größere Datenmengen verarbeiten und bei einem schlechten Durchsatz Verzögerungen hervorrufen. Aber ich dachte, dass das bei Ausführung im Thread im Hintergrund liefe und man in Ruhe weiterarbeiten kann.

Was mache ich falsch?

Falls Bedarf besteht, kann ich auch Quellcode reinsezten. Ich bitte dann aber um Erklärung was gebraucht wird; 400 Zeilen sind zuviel.

[edit=SirThornberry]Titel korrigiert - Mfg, SirThornberry[/edit]
Alex Winzer
  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 18:46 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