![]() |
Thread Error: Zugriff verweigert (5) ?
Hallo,
Wenn ich meinen Thread per Suspend pausieren möchte, erhalte ich die Exception "Thread Error: Zugriff verweigert (5)". Was bedeutet sie ? Und was könnte die Ursache sein ? mfg Phil |
Re: Thread Error: Zugriff verweigert (5) ?
Moin!
*Glaskugel auspack* Hmm, schlechte Verbindung heute... *Glaskugel wegstell* Zeig doch lieber was Dein Thread so macht, führt eher zum Erfolg als herumraten zu müssen ;) |
Re: Thread Error: Zugriff verweigert (5) ?
Vermutlich beendet sich der Thread gerade selbst. Wenn Du ihn dann aufwecken oder schlafen legen willst, dann geht das natürlich nicht mehr.
Ich würde mit Suspend und Resume *nicht* arbeiten, weil man eben nicht weiss, was der Thread gerade macht. Ich verwende dafür fast ausschließlich Workerthreads. Die warten mit Hilfe eines Synchronisationsobjects (Semphore) auf Arbeit. Dieses Warten verbrät keine CPU-Zeit (WaitForSingleObject). Wenn Jemand möchte, da der Thread einen Job übernimmt, dann teilt er ihm das mit. Daraufhin wird die Semaphore gezuppelt, der Thread erwacht *genau an der definierten Stelle* aus seinem Dornröschenschlaf, nimmt den Job entgegen und arbeitet ihn ab. |
Re: Thread Error: Zugriff verweigert (5) ?
hoi, erstmal Danke für die Antworten.
In meinem Thread rufe ich ja gerade nicht Self.Suspend etc auf, auch außerhalb des Threads passiert das nicht einfach ohne Klicken auf einen Button. im Execute dürte durch das
Delphi-Quellcode:
doch eigentlich auch alles klar sein..
while not Terminated do begin
//Code end; Was passiert sein könnte ist, dass in dem Thread manchmal eine Exception durch eine TIdHTTP-Kompo (Connection Timed Out) ausgelöst wird (wobei aber keine Messagebox erscheint). Könnte der Thread dadurch terminiert (oä) werden ? |
Re: Thread Error: Zugriff verweigert (5) ?
Hä? Du rufst doch Suspend auf, steht jedenfalls im 1.Post.
Sobald die Execute-Methode verlassen wird (z.B. durch eine Exception), terminiert der Thread. Du musst also mit Try...Except dafür sorgen, das das nicht passiert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:25 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