Es gibt mehrere Threads ( a , b , c usw.) über die Tatsache, dass Clear () Elemente in den .NET-Komponentencontainern nicht ist > Dispose (indem Sie Dispose ( true ) aufrufen.
)Am häufigsten werden die Clear-ed-Komponenten in der Anwendung nicht mehr verwendet. Daher müssen sie nach dem Löschen aus den übergeordneten Containern explizit disponiert werden.
Vielleicht ist es eine gute Idee, dass die Clear
-Methode der Sammlung einen Bool-Parameter dispose
hat, der, wenn er in "true" ist, auch die Auflistungselemente vor dem Entfernen aus der Liste disponiert?
Nach solchen Änderungen zu fragen, ist sinnlos, das Windows Forms-Team wurde vor einiger Zeit aufgelöst. Im Wartungsmodus werden nur Sicherheitsprobleme und Betriebssystemkompatibilitäten berücksichtigt.
Es ist ansonsten einfach genug, um eine eigene Methode dafür zu erstellen:
%Vor%Jetzt können Sie schreiben:
%Vor%Bei der Beantwortung der Frage "Was ist das Risiko?" geht das Risiko (oder ein Risiko) aus den Fenstergriffen aus, obwohl es eine Weile dauern kann.
Ich habe einen "Fenster-Designer", der aus einem Skript ein Fenster generiert. Jedes Mal, wenn ich das Skript ändere, wird das Fenster neu erstellt (die Steuerelemente werden gelöscht und neu geschrieben). Mit einem besonders komplexen Fenster und mit Controls.Clear()
jedes Mal, nach vielen dutzenden von Aktualisierungen, werde ich irgendwann eine "no more window handles" -Ausnahme bekommen und keine weiteren Steuerelemente mehr erstellen können.
Einfach genug, um den Aufruf von Controls.Clear()
durch etwas wie:
Tags und Links .net garbage-collection components dispose clear