我们已经看到,当Infralution VirtualTree控件在GetRowData事件中分配图标时,似乎是GDI对象泄漏。VirtualTree包含在TabControl中包含的控件中。按Task键离开并返回到树会导致任务管理器中的"GDI对象“计数器不断递增。在注释掉GetRowData事件(基本上消除了图标)之后,来回切换到此选项卡不会增加GDI对象数量。
这已经成为我们的应用程序的一个问题,因为它的几个实例同时运行在客户端机器上,并且在负载下,我们的应用程序由于GDI对象创建中的错误而崩溃。
是否有任何方法可以抢先清除Tree控件(除了处理它?)我考虑将树初始化代码移出设计器,以便每次都可以处理/重新初始化它,但我担心这会影响设计总体控件的能力。
发布于 2008-09-22 16:01:46
我们可以看看GetRowData的代码吗?如果此函数为图标分配GDI对象,则解决方案是重用图标,而不是每次都重新创建它们。
https://stackoverflow.com/questions/115663
复制相似问题