Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Zeichnen 355 GDI Probleme vermeiden In manchen Windows.Forms -Anwendungen, die intensiven Gebrauch von GDI machen, treten beim Zeichnen der Oberfläche eigenartige Probleme auf. Teilweise werden Teile der Oberfläche nicht mehr gezeichnet, teilweise werden Teile der Oberfläche mit eigenartigen Mustern über- zeichnet. Diese Probleme nachzuvollziehen, ist sehr schwierig, da sie fast ausschließlich in komplexeren Anwendungen auftreten, die viele selbst gezeichnete Steuerelemente einsetzen. In einer Anwendung, an deren Entwicklung ich beteiligt bin und die fast ausschließlich selbst gezeichnete Steuerelemente einsetzt, trat das GDI-Problem zum Beispiel auf, nachdem der Benutzer einen Splitter mehrfach verschoben hatte, was jeweils zum Neuzeichnen der auf dem Formular angelegten Steuerelemente führte. Die Ursache des Problems ist wahrscheinlich, dass bei der Programmierung solcher Anwen- dungen vergessen wurde, die Dispose -Methode der verwendeten GDI-Objekte aufzurufen. Dis- pose gibt die von diesen Objekten verwendeten externen (GDI-)Ressourcen frei. Normalerweise sollte Dispose vom Finalisierer der Objekte aufgerufen werden und dieser vom Garbage Collec- tor. Vermutlich zerstört der Garbage Collector diese meist sehr kleinen Objekte aber nicht immer, da es für den Speicher keinen großen Vorteil bringen würde. Dummerweise sind GDI- Ressourcen aber im System begrenzt. Wenn ein Programm die Ressourcen ausgeschöpft hat, können keine neuen reserviert werden, und schon sind die Probleme da.