yujun199901 发表于 2019-7-22 16:51

winform编程中panel容器中的panel.control.clear(),执行了但是资源没有被释放,如何...

本帖最后由 yujun199901 于 2019-7-31 11:39 编辑

本人使用的是C#语言,开发一个c/s架构的程序,使用的技术是winform,如何在开发的过程中遇到了一个问题,所以来求助大家
问题:本人在使用自定义控件时,通过panel中的control集合.add方法将自定义的控件添加到,panel容器中,但是切换界面是,我将panel.control的内容clear()
但是通过资源管理器的监视,发现了一个问题,之前清空的自定义控件,所属的子线程仍热在执行,自定义控件中的timer仍然在执行.,导致,cup满负荷执行.



-------------------------------------------------------求求你们,救救孩子吧-------------------------------------------------------------------------------

jipings777 发表于 2019-7-22 17:27

感谢分享

gana 发表于 2019-7-22 18:28

本帖最后由 gana 于 2019-7-22 18:30 编辑

我来说下吧。这个问题应该还是出在你的自定义控件的生命周期函数没有完善的原因。
你应该在你自定义控件销毁时,对控件里所有销毁CPU或内存的操作进行处理。也就是你现在控件里的timer,需要销毁。

除了上述你平时需要注意,你现在的问题,应该不是销毁问题,而是清空后,自定义控件并未销毁,且内部timer仍在运行。你可以在OnParentChanged方法将timer停掉来解决这个问题。

wjshan0808 发表于 2019-7-30 23:39

妥善利用Dispose方法
页: [1]
查看完整版本: winform编程中panel容器中的panel.control.clear(),执行了但是资源没有被释放,如何...