Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 清洁资源/在CustomControl中处理_C#_Xaml_Windows Runtime - Fatal编程技术网

C# 清洁资源/在CustomControl中处理

C# 清洁资源/在CustomControl中处理,c#,xaml,windows-runtime,C#,Xaml,Windows Runtime,我正在为WinRT/WP8.1编写自定义控件,我想知道清理资源/处置的正确方法是什么?我使用RX(事件到可观察对象),我应该手动处理它-但我不确定在哪里做(不强制api客户端手动调用.dispose()) 我认为这将取决于您拥有的资源,您可以提出许多不同的策略,这些策略将更好地适用于特定场景。您可以实现IDisposable或使用Loaded和Unloaded事件来管理资源的生命周期。您可能只是不使用任何资源,只要您可以处置它们。您可以向控件的用户公开不同的方法或属性,这些方法或属性指定要使用的

我正在为WinRT/WP8.1编写自定义控件,我想知道清理资源/处置的正确方法是什么?我使用RX(事件到可观察对象),我应该手动处理它-但我不确定在哪里做(不强制api客户端手动调用
.dispose()

我认为这将取决于您拥有的资源,您可以提出许多不同的策略,这些策略将更好地适用于特定场景。您可以实现
IDisposable
或使用
Loaded
Unloaded
事件来管理资源的生命周期。您可能只是不使用任何资源,只要您可以处置它们。您可以向控件的用户公开不同的方法或属性,这些方法或属性指定要使用的策略,这样他们就有了选择的权力,或者明确地决定何时进行清理。

谢谢。作为winrt xaml toolkit的开发人员,您是否有任何技巧/工具可以帮助跟踪自定义控件中的内存泄漏?这里的关键是您提到您正在使用Rx将事件转换为可观察序列,如果您没有使用Rx,您会将事件注销('-=')放在自定义控件的何处?,我猜,但可能是在卸载事件中。我在自定义控件中看不到类似“卸载”事件的东西-如果它可用,我只会在那里处置rx可观察对象。好的,那么在哪里设置事件订阅?我从OnApplyTemplate()中的控件和设置事件继承那么,为什么不在OnAppylyTemplate中为卸载的事件设置事件订阅呢?