Wie andere Leute erwähnt haben, werden CreateEvent/CreateEventEx zum Erstellen von "Event" -Zeichen verwendet. Diese stellen Synchronisationsobjekte dar, die häufig zum Gate-Zugriff verwendet werden, Signale (potentiell) an andere Threads liefern und auch als Basis für Sperren verwendet werden können.
Wenn Sie versuchen, ein Leck mit Event-Handles zu debuggen, sollten Sie versuchen, nach Stellen zu suchen, an denen CreateEvent (Ex) ohne ein entsprechendes CloseHandle() aufgerufen wird. Je nachdem, welche Frameworks Sie zum Abrufen von Ereignissen verwendet haben, werden Sie möglicherweise bei der Bereinigung auch fehlen, wenn sie Mitglieder eines anderen Objekts/einer anderen Struktur sind (z. B. eine generische LEVEL-Membervariable, die beim Bereinigen übersprungen wird, oder ein Zeiger auf einen GRIFF usw.).
Wenn Sie sich nicht erinnern, diese Objekte in Ihrem eigenen Code erstellt zu haben, ist es möglich, dass Sie eine analoge Close() - oder andere Bereinigungsmethode für eine andere Klasse oder einen anderen Anbieter, der sie intern verwendet, nicht verwenden. Dinge, die Hintergrundverarbeitung, Signalisierung oder Methoden bereitstellen, um auf den Abschluss von Operationen zu warten, sind hier die üblichen Verdächtigen.
Event erstellen Griffe
CreateEvent Function @ MSDN
CreateEventEx Function @ MSDN
Cleanup
CloseHandle Function @ MSDN
Nach dem anfänglichen Aufruhr hat sich das Programm darauf eingestellt, ungefähr ein oder zwei pro Sekunde zu erzeugen. - Diese Antwort klingt sehr machbar, aber ich kann es erst morgen ausprobieren. Prost. – Mick