C# 清洁资源/在CustomControl中处理
我正在为WinRT/WP8.1编写自定义控件,我想知道清理资源/处置的正确方法是什么?我使用RX(事件到可观察对象),我应该手动处理它-但我不确定在哪里做(不强制api客户端手动调用C# 清洁资源/在CustomControl中处理,c#,xaml,windows-runtime,C#,Xaml,Windows Runtime,我正在为WinRT/WP8.1编写自定义控件,我想知道清理资源/处置的正确方法是什么?我使用RX(事件到可观察对象),我应该手动处理它-但我不确定在哪里做(不强制api客户端手动调用.dispose()) 我认为这将取决于您拥有的资源,您可以提出许多不同的策略,这些策略将更好地适用于特定场景。您可以实现IDisposable或使用Loaded和Unloaded事件来管理资源的生命周期。您可能只是不使用任何资源,只要您可以处置它们。您可以向控件的用户公开不同的方法或属性,这些方法或属性指定要使用的
.dispose()
) 我认为这将取决于您拥有的资源,您可以提出许多不同的策略,这些策略将更好地适用于特定场景。您可以实现IDisposable
或使用Loaded
和Unloaded
事件来管理资源的生命周期。您可能只是不使用任何资源,只要您可以处置它们。您可以向控件的用户公开不同的方法或属性,这些方法或属性指定要使用的策略,这样他们就有了选择的权力,或者明确地决定何时进行清理。谢谢。作为winrt xaml toolkit的开发人员,您是否有任何技巧/工具可以帮助跟踪自定义控件中的内存泄漏?这里的关键是您提到您正在使用Rx将事件转换为可观察序列,如果您没有使用Rx,您会将事件注销('-=')放在自定义控件的何处?,我猜,但可能是在卸载事件中。我在自定义控件中看不到类似“卸载”事件的东西-如果它可用,我只会在那里处置rx可观察对象。好的,那么在哪里设置事件订阅?我从OnApplyTemplate()中的控件和设置事件继承那么,为什么不在OnAppylyTemplate中为卸载的事件设置事件订阅呢?