gpt4 book ai didi

c# - 将 allowdrop 设置为 true 会导致 .net 应用程序中的内存泄漏

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:05 27 4
gpt4 key购买 nike

我的应用程序在 Windows 窗体中使用 allowdrop=true 来进行拖放操作,并且它有许多自定义事件。当我运行配置文件时,我发现大部分对象都由 droptarget 对象提供帮助。

请告诉我如何修复它。

我在某个地方读到它,将它设置回 false 可以解决这个问题,但是我的控件加载到另一个容器的内存中,即使我关闭,它也没有从内存中删除。我只是在它显示时第一次获得构造函数事件,之后它会保留在内存中,即使我们关闭它也是如此。

所以我没有收到任何其他事件,也没有对其执行任何事件,并且当我从容器中关闭和打开我的控件时,我继续看到内存泄漏。让我知道如何解决它。我只有在关闭容器时才会收到处理事件..

最佳答案

解决方案是:不要使用您的 Form 作为放置目的地,使用一个像容器一样的小面板来切换 AllowDrop 属性。

在某些情况下,下面的 hack 解决了问题。

void Form1_DragDrop(object sender, DragEventArgs e)
{
//reset the AllowDrop and call GC to collect memory
AllowDrop = false;
GC.Collect();
GC.Collect();
AllowDrop = true;
}

关于c# - 将 allowdrop 设置为 true 会导致 .net 应用程序中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26763453/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com