Tag: 内存泄漏

绑定到列表会导致内存泄漏

当我将ListBox的ItemsSource绑定到List时,绑定引擎在控件消失后保持列表元素。 这会导致所有列表元素保留在内存中。 使用ObservalbleCollection时问题就消失了。 为什么会这样? 窗口标记内的xaml GC 代码背后: public MainWindow() { InitializeComponent(); DataContext = new ViewModel(); } private void Button_Click(object sender, RoutedEventArgs e) { this.DataContext = null; ContentControl.Content = null; GC.Collect(); GC.WaitForPendingFinalizers(); } 视图模型 class ViewModel : INotifyPropertyChanged { //Implementation of INotifyPropertyChanged … //Introducing ObservableCollection as type resolves the problem private IEnumerable _list = new List […]

如何检测内存泄漏的位置?

我有一个大型网站,似乎正在吸收正在分配的所有内存。 此站点旁边的服务器上没有其他任何内容。 在一个星期内,它吃掉了2场演出,需要重新启动。 目前这是使用IIS 7的服务器2008 32位。我们重新安装使用64位并添加更多内存。 能够追踪泄漏发生的位置会很好。 那么跟踪内存泄漏的最佳做法是什么?

如何清除()控件而不会导致内存泄漏

阅读有关Control.Clear(); 导致内存泄漏(在MSDNvalidation),我想知道是否: while (Controls.Count > 0) Controls[0].Dispose(); 就足够了,还是我必须递归遍历控件中的所有控件? 还有什么理由去做Control.Clear(); 之后? (因为我看到有人说某处)? 谢谢。

如何获取应用程序使用的内存量

可能重复: 如何在C#中获取或使用内存 我想在我的应用程序的状态栏中可视化我的应用程序使用的内存。 我正在寻找记忆漏洞 – 但我不知道在哪里。 现在,我的想法是在状态栏中可视化使用的内存,以便在我使用应用程序时找到它,找到问题发生的部分,然后我可以对其进行分析。 有人可以给我一些帮助,我怎样才能得到用过的记忆。

防止WPF中的内存泄漏

使用WinForms您必须在使用gdi对象,事件处理程序,本机代码中的对象等后释放内存。 在WinForms我曾经在dispose方法中删除了例如事件处理程序。 防止Wpf内存泄漏的最佳解决方法是什么? 它与使用Dispose pattern Winforms的相同吗? 总之,我是否必须关心Wpf事件处理程序,gdi对象? 运行时创建的资源( Brushes等)怎么样?

找不到内存泄漏

我一直在研究WP7应用程序,它是图像库应用程序,实现了基本的缩放和轻弹手势。 出于测试目的,我使用设置为Content的离线图像(其文件名已编号)编译应用程序,并通过硬编码字符串(稍后将替换)访问它们。 但后来意识到应用消耗了大量内存。 我以为这是由于图像并发现了这个博客 ; 图像总是缓存。 我使用博客中的代码来纠正这个问题。 尽管消费率确实下降,但仍未释放内存。 为了最后的尝试,我创建了另一个带有基本function2按钮的测试应用程序,用于图像的导航和图像控制,只是为了确保它不是我的手势代码可能是问题。 这是xaml 这是.cs文件 const int PAGE_COUNT = 42; int pageNum = 0; public MainPage() { InitializeComponent(); RefreshImage(); } private void btnPrev_Click(object sender, RoutedEventArgs e) { pageNum = (PAGE_COUNT + pageNum – 1) % PAGE_COUNT; // cycle to prev image RefreshImage(); } private void btnNext_Click(object sender, RoutedEventArgs e) […]

如何修复IE WebBrowser控件中的内存泄漏?

我试图在C#Winform应用程序中嵌入一个WebBrowser控件。 这听起来很容易。 但是我发现每次调用Navigate方法时,WebBrowser控件都会占用大量内存。 永远不会释放内存。 内存使用量增长和增长…… 网上有很多人有完全相同的问题,但我还没有找到令人满意的答案。 这是迄今为止我发现的关于这个问题的最佳讨论: IE WebBrowser控件中的内存泄漏 有人建议升级到IE8以解决问题。 但是,无论用户是否安装了最新的IE版本,我都需要一个解决方案。 我无法控制用户环境。 有谁知道如何释放WebBrowser控件占用的内存? 有解决方法吗? 是否有WebBrowser控件的替代品? 更新:我刚刚做了一些测试。 在工作中,我正在运行Windows XP和IE6。 记忆在那里不会增长。 调用导航方法时内存增加但一段时间后释放。 在家我运行Vista并升级到IE8。 在这里,我也不再看到问题了。 看起来问题是IE7特有的。 因此,问题应该改为“如何在安装IE7时修复IE WebBrowser控件中的内存泄漏”。 任何人都可以确认这个问题是否特定于IE7?