相关疑难解决方法(0)

处理SolidBrush和Pen是否重要?

我最近遇到了CodeProject上的VerticalLabel控件.

我注意到OnPaint方法创建但不处理Pen和SolidBrush对象.

这是否重要,如果是这样,我怎样才能证明它可能导致的任何问题?

编辑

这不是关于IDisposable模式的一般问题.我知道调用者通常应该在任何实现IDisposable的类上调用Dispose.

我想知道的是,当GDI +对象没有按照上面的例子那样处理时,可以预期会出现什么问题(如果有的话).很明显,在链接的示例中,在垃圾收集器启动之前可能会多次调用OnPaint,因此可能会耗尽句柄.

但是我怀疑GDI +在某些情况下内部重用句柄(例如,如果你使用Pens类中特定颜色的笔,它会被缓存并重用).

我想要了解的是,链接示例中的代码是否能够在忽略调用Dispose的情况下逃脱.

如果没有,看一个样本,证明它可能导致什么问题.

我应该补充一点,我经常(包括MSDN上的OnPaint文档)看到WinForms代码示例未能处理GDI +对象.

.net idisposable winforms

17
推荐指数
3
解决办法
4901
查看次数

标签 统计

.net ×1

idisposable ×1

winforms ×1