(Borland C++...) Was genau sind Handles?



  • Hallo,

    ich habe ein Problem. Und zwar, wenn ich mir die Systemauslastung mit dem Windows TaskManagers ansehe, gibt es da eine Anzeige Handles. Und dieser Wert liegt zunächst so um die 7000. Wenn ich dann in meiner Anwendung Schreibvorgänge starte, wächst dieser Wert pro sekunde um 200. Das kann doch nicht gut sein, oder?

    Beim Starten des Senden (COM -Port) wird pro Puffer ein Thread geöffnet und nachdem der puffer gesendet wurde, wird er wieder geschlossen. Die Anzeige bei den Threads bleibt aber Konstant, so wie es sein soll.

    nach Versuchen stellte sich heraus, das pro thread, genau ein Handle dazu kommt. Was kann das sein?

    Als handle habe ich einmal das handle auf die Schnittstelle und dann das event für die overlapped Operation, dass ich aber am Ende des Threads mit closehandle wieder lösche.

    Also was kann dieses Hanlde noch sein?
    Danke schon mal.

    Grüße
    Franky



  • Wenn der Thread nicht mit _beginthread() erzeugt wurde, sondern mit _beginthreadex() oder CreateThread(), so muß das Thread-Handle per CloseHandle() gelöscht werden.



  • Ich mache das anders: Mit dem Borland Builder:

    TWriteThread* WriteThread;
    WriteThread=new TWriteThread(Buffer, numberofbytes, false);
    

    Muß ich da auch irgendetwas löschen und wenn ja, wie?
    Oder bin ich jetzt im falschen Forum?

    Grüße
    Franky



  • Ich nehme mal an du musst irgendwo "delete WriteThread;" aufrufen.

    Du hast übrigens Recht, das ist das falsche Forum.


Anmelden zum Antworten