我有一个 wpf 用户控件,它显示一些创建/处置成本高昂的非托管资源。
UnLoaded 事件是释放非托管资源的理想事件,但由于某些控件创建/销毁可视化树,每个实例都会多次调用它。
我想做的是以某种方式确定在 UnLoaded 事件中,控件是否仍然存在并且运行良好,但没有为其构建可视化树。
这样,如果用户只是在 TabControl 中导航,或者可能是这种情况,我可以防止释放/创建非托管资源。
Unloaded 事件是释放非托管资源的错误位置。
http://msdn.microsoft.com/en-us/library/b1yfkh5e(v=vs.100).aspx
当您知道不再需要 UserControl 并想立即释放非托管资源时
- 调用 Dispose()