【发布时间】:2011-09-12 01:49:39
【问题描述】:
我在 Silverlight 应用程序中出现内存泄漏,我使用此信息开始使用,
这太棒了。我已经提取了一些代码来解决这个问题。所以代码看起来像这样,一个子窗口,
<controls:ChildWindow x:Class="MemoryLeakTesting2.ConfirmDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
xmlns:telerik="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls"
Width="375" >
<Grid Margin="2">
<telerik:RadButton Content="OK" Click="OnClick" Command="{Binding CancelActionCommand}" Width="75" Height="23" HorizontalAlignment="Right" Margin="0,12,0,0" Grid.Row="1" />
</Grid>
</controls:ChildWindow>
后面的代码是这样的,
public partial class ConfirmDialog : ChildWindow
{
public ConfirmDialog()
{
InitializeComponent();
}
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
private void OnClick(object sender, RoutedEventArgs e)
{
DialogResult = true;
}
}
我正在从我的 silverlight 主页面中的按钮单击事件中调用此代码,如下所示,
private void Button_Click(object sender, RoutedEventArgs e)
{
ConfirmDialog dialog = new ConfirmDialog();
dialog.Show();
}
每次我打开弹出窗口并关闭它时都会泄漏内存。我使用WinDbg,它实际上显示每次弹出并关闭ConfirmDialog实例后都没有释放它??
【问题讨论】:
-
你怎么知道内存肯定泄漏了?你真的能看到内存消耗在增加吗? (在哪里?)
-
我已经更新了问题。 ConfirmDialog 不会在每次创建和关闭对话框时都被释放。
标签: silverlight silverlight-4.0 memory-leaks telerik