设置首页收藏本站在线聊天
授权版本:2024_09
开启左侧

C#中HObject数组内存释放不了

[复制链接]
wuyq80 发表于 2024-3-24 19:51:18 | 显示全部楼层 |阅读模式
  1.   objectQueue = new HObject[200];
  2.   await Task.Run(async () =>
  3.   {
  4.       for (int i = 0; i < 200; i++)
  5.       {
  6.           HOperatorSet.ReadImage(out objectQueue [i], $"{AppDomain.CurrentDomain.BaseDirectory}Photo//{i}.jpg");
  7.       }
  8.      foreach (HObject obj in objectQueue)
  9.       {
  10.           if (obj != null)
  11.           {
  12.               obj.Dispose();
  13.           }
  14.       }
  15.       objectQueue = null;
  16.      GC.Collect();
  17.   });
复制代码
就这样简单的代码,占用的几个G内存为何释放不了,为什么??
如果在for循环里用局部变量删除,内存就不会增大。有哪位大佬知道,谢谢。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
xiao_yong_qq 发表于 2024-3-24 23:51:42 | 显示全部楼层
使用 using 语句试试。这个机制一定可以的
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
halcon2016 发表于 2024-3-25 11:00:27 | 显示全部楼层
我用你这代码测试,内存增大之后可以释放啊,只不过会延迟(大概20秒),不是立即释放
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| wuyq80 发表于 2024-3-25 14:26:50 | 显示全部楼层
halcon2016 发表于 2024-3-25 11:00
我用你这代码测试,内存增大之后可以释放啊,只不过会延迟(大概20秒),不是立即释放 ...

什么环境,我的是win10,22版本就不行
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
halcon2016 发表于 2024-3-25 14:33:27 | 显示全部楼层
wuyq80 发表于 2024-3-25 14:26
什么环境,我的是win10,22版本就不行

win10 , halcon23.05
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| wuyq80 发表于 2024-3-25 20:02:17 | 显示全部楼层

23.05下是一样的,Dispose只能释放数据,内存占用还是没变化。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
halcon2016 发表于 2024-3-26 09:09:46 | 显示全部楼层
wuyq80 发表于 2024-3-25 20:02
23.05下是一样的,Dispose只能释放数据,内存占用还是没变化。

反正我的电脑上是可以释放的
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| wuyq80 发表于 2024-3-26 12:32:39 | 显示全部楼层
halcon2016 发表于 2024-3-26 09:09
反正我的电脑上是可以释放的

那就奇怪了,我好几台电脑都增大后就不减少了.VS什么版本
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
halcon2016 发表于 2024-3-26 13:05:13 | 显示全部楼层
wuyq80 发表于 2024-3-26 12:32
那就奇怪了,我好几台电脑都增大后就不减少了.VS什么版本

2013...........
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表