我创建了一个WPF应用程序,我的客户问我每个操作的内存消耗都在增加。他说他检查了任务管理器。(是的,我也检查过了)。
我已经使用ANTS检查了任何内存泄漏,但失败了。我已经清除了应用程序中的内存泄漏问题(众所周知,内存泄漏和内存消耗是不同的)。但是,对于每个操作,的内存消耗都会增加,例如,在ListBox
中选择一个项目这是我使用的CS代码。
private void button1_Click(object sender, RoutedEventArgs e)
{
ListBoxItem item = (PinnedListBox.SelectedItem as ListBoxItem);
PinnedListBox.Items.Remove(item);
UnPinnedListBox.Items.Add(item);
}
private void button2_Click(object sender, RoutedEventArgs e)
{
ListBoxItem item1 = (UnPinnedListBox.SelectedItem as ListBoxItem);
UnPinnedListBox.Items.Remove(item1);
PinnedListBox.Items.Add(item1);
}
点击Button1时,项目从PinnedItems转移到UnPinned,点击Button2时,项目从UnPinned转移到Pinned。
谁来指点我一下。
提前感谢。
KSAM
与Winforms应用程序相比,WPF应用程序使用相对较多的内存。但即使这样,当你的应用程序正在运行时,操作系统会根据应用程序的需要给它内存。在某个时刻,你的应用程序会做一个垃圾收集,基本上内存被释放。
你可以做一个简单的技巧,通过最小化应用程序来释放一些内存。
参见:http://windows.microsoft.com/en-my/windows-vista/what-do-the-task-manager-memory-columns-mean