Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Frozen Thread Debugging INDY 10 TBITMAP (https://www.delphipraxis.net/171469-frozen-thread-debugging-indy-10-tbitmap.html)

bernhard_LA 7. Nov 2012 18:26


Frozen Thread Debugging INDY 10 TBITMAP
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,


ich bin am debuggen einer Anwendung (server.exe) welche eine INDY 10 TCP Server Komponente verwendet.
Aus der Server.onexecute Methode rufe ich eine Methode PaintImageProcess auf welche dann verschiedene Proceduren aus meiner TBitMap "ZeichenKlasse"
aufruft. Der ganze Code funktioniert oft aber nicht immer.

Mit Madshi erhalte ich folgende DEBUG Info (siehe screen dump), der obige Aufrufsequenz wiedergibt. Leider kann ich nur aus der Debug Meldung keine Idee für ein Beheben meines
Fehler ableiten .... ich bin um jeden Input zum weiteren Debuggen dankbar

nuclearping 7. Nov 2012 21:02

AW: Frozen Thread Debugging INDY 10 TBITMAP
 
Das angehängte Bild ist in einer extrem schlechten Qualität. Erkennt man nichts drauf.

Aber pauschal würde ich sagen: Zeichnest du Thread-Safe?

bernhard_LA 7. Nov 2012 22:02

AW: Frozen Thread Debugging INDY 10 TBITMAP
 
habe gerade den screen dump nochmals in höherer Auflösung hochgeladen. Alle TBitmap.Canvas Operationen habe ich mit
Delphi-Quellcode:
Bitmap.Lock

.....



BitMap.Unlock
abgesichert.

dunningkruger 7. Nov 2012 23:07

AW: Frozen Thread Debugging INDY 10 TBITMAP
 
"server.exe" scheint mir kein gut gewählter Name zu sein.

nuclearping 8. Nov 2012 02:57

AW: Frozen Thread Debugging INDY 10 TBITMAP
 
Zitat:

Zitat von bernhard_LA (Beitrag 1190237)
habe gerade den screen dump nochmals in höherer Auflösung hochgeladen.

Probiere doch mal bitte blöderweise Synchronize(BitmapPaintImageProcess) im OnExecute. :stupid:

bernhard_LA 8. Nov 2012 10:26

AW: Frozen Thread Debugging INDY 10 TBITMAP
 
der code TThread.Synchronize war bereits von Anfang an drinnen :-)


Delphi-Quellcode:

procedure TServerMainForm.IdTCPServerExecute(AContext: TIdContext);


   ....

    BitMap_PaintImageProcess;

    TThread.Synchronize(nil, BitMap_PaintImageProcess);

    ....


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