Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   AccessViolation beim Abbrechen von Threads (https://www.delphipraxis.net/147251-accessviolation-beim-abbrechen-von-threads.html)

Luckie 4. Feb 2010 14:03


AccessViolation beim Abbrechen von Threads
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe gerade den Portscanner von Hagen nachprogrammiert, weil ich verstehen wollte, wie er die Threads organisiert. Läuft auch so ganz gut. Allerdings kommt es bei mir, wenn ich den Scan abbreche zu einer AccessViolation und ich finde den Grund nicht, da der Code eigentlich identisch mit dem von Hagen ist.

Da man schlecht Codeauszüge posten kann, hänge ich mal das Projekt an.

Astat 4. Feb 2010 14:24

Re: AccessViolation beim Abbrechen von Threads
 
Zitat:

Zitat von Luckie
Ich habe gerade den Portscanner von Hagen nachprogrammiert, weil ich verstehen wollte, wie er die Threads organisiert. Läuft auch so ganz gut. Allerdings kommt es bei mir, wenn ich den Scan abbreche zu einer AccessViolation und ich finde den Grund nicht, da der Code eigentlich identisch mit dem von Hagen ist.

Hallo Luckie,

Delphi-Quellcode:

  TThreadFunc = function(Parameter: Pointer): Integer;

  function ScanProc(Parameter: Pointer): Integer;
ohne stdcall.

lg. Astat

Luckie 4. Feb 2010 14:34

Re: AccessViolation beim Abbrechen von Threads
 
:wall: Danke für den Hinweis. Jetzt geht es.

Allerdings hätte ich noch ein Problem. Kann man das irgendwie optimieren, dass es nicht ewig dauert bis er alle Threads abgebaut hat? Wenn man nämlich den Scan stoppt, braucht er noch ewig bis alle Threads abgebaut sind und das Programm wieder reagiert. CountThreads steht schon auf null, aber in der IDE kann man noch sehen, dass da noch unheimlich viele Threads beendet werden.

himitsu 4. Feb 2010 14:55

Re: AccessViolation beim Abbrechen von Threads
 
stdcall ... WinAPI-Luckie in der "normalen" Delphiwelt :lol:


Es kann auch sein, daß der Debugger dort massig bremst?
Nimm dir doch mal den Process Explorer, schau damit und starte das Programm ohne Debugger.

Astat 4. Feb 2010 14:57

Re: AccessViolation beim Abbrechen von Threads
 
Zitat:

Zitat von Luckie
.. Kann man das irgendwie optimieren, dass es nicht ewig dauert bis er alle Threads abgebaut hat?

Naja, die Threads sind nicht das Problem, sondern das Connect auf einen Port den es nicht gibt.
Da dauert's a bissl bis das Connect zurückkommt.

lg. Astat

Luckie 4. Feb 2010 14:57

Re: AccessViolation beim Abbrechen von Threads
 
Ohne Debugger scheint es wirklich flott zu gehen. OK, dann hat sich das auch erledigt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:26 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