我有一个CDialog派生的MFC对话框,其中包含使用/ clr支持和CWinFormsControl的winforms用户控件:
CWinFormsControl<MyNamespace::MyUserControl> m_userControl;
除了一件事,一切都很好。我在控件上有一个计时器:
private System.Windows.Forms.Timer flashTimer;
this.flashTimer.Enabled = true;
this.flashTimer.Interval = 1000;
this.flashTimer.Tick += new System.EventHandler(this.FlashTimerTick);
还有一些简单的属性和另一个更新Web服务值的计时器。没有什么比这更复杂的了。
问题是,在对话框解除后,计时器的Tick事件继续触发,我的控件继续一直运行。我假设一旦HWND被销毁,计时器就会停止,GC最终会清理我的对象。
我在C#/ WinForms和C ++ / MFC方面有很多经验,但这是我第一次尝试像这样使用它们。我错过了什么吗?我是否需要进行某种手动清理用户控件?