我创建了一个WPF应用程序,我的客户端问我每次操作都会增加内存消耗。他说他检查了TaskManager。(是的,我也检查了)。
我已经使用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,OnClick of Button2,项目从Unpinned转移到Pinned。
有人请就此提出建议。
提前致谢。
KSAM
答案 0 :(得分:1)
与Winforms应用程序相比,WPF应用程序使用相对大量的内存。 但即便如此,当您的应用程序正在运行时,操作系统会根据应用程序的需要为其提供内存。在某个时刻,你的应用程序将进行垃圾收集,基本上会释放内存。
你可以通过最小化你的应用来做一个简单的技巧来释放一些内存。
另见:http://windows.microsoft.com/en-my/windows-vista/what-do-the-task-manager-memory-columns-mean