开启左侧

C#调用VPP有内存泄漏

[复制链接]
完美世界 发表于 2019-1-21 15:07:13 | 显示全部楼层 |阅读模式
谁能帮忙看下下面的代码为什么会内存泄漏
自己也试了很久,不清楚哪里有内存泄漏,跟助手生成的相比也没发现有那个地方不对劲
  1. private void button_Run_Click(object sender, EventArgs e)
  2.         {
  3.      String path = @"C:\Code\VP\1.VPP";//vpp文件路径
  4.      var mymanger = (CogJobManager)CogSerializer.LoadObjectFromFile(path);//加载vpp
  5.      CogToolGroup mytg = mymanger.Job(0).VisionTool as CogToolGroup;//获取job中的工具组
  6.      CogIntersectLineLineTool mytll = mytg.Tools["CogIntersectLineLineTool1"] as CogIntersectLineLineTool;//获取工具组中的CogAcqFifoTool1工具
  7.      mymanger.Run();
  8.      mymanger.Stopped += Mymanger_Stopped;
  9.         }

  10.         private void Mymanger_Stopped(object sender, CogJobManagerActionEventArgs e)
  11.         {
  12.      Console.WriteLine("Stoped");
  13.      var mymanger = sender as CogJobManager;
  14.      if (mymanger != null)
  15.           mymanger.Reset();
  16.         }
复制代码


 楼主| 完美世界 发表于 2019-1-22 11:02:28 | 显示全部楼层
已经搞定了,CogJobManager只能实例化一次,如果多次的话就会泄露,我再WCF当中使用必须把它声明为static,不然再wcf当中会崩溃。但是如果不再wcf当中使用只需要声明成普通的字段就可以了。不清楚为啥CogJobManager这个类内存释放不了。
chenying 发表于 2019-1-25 12:18:55 | 显示全部楼层
完美世界 发表于 2019-1-22 11:02
已经搞定了,CogJobManager只能实例化一次,如果多次的话就会泄露,我再WCF当中使用必须把它声明为static, ...

VisionPro不要用Job做项目啊,这样太麻烦了!康耐视本部都很少用这种模式
 楼主| 完美世界 发表于 2019-1-29 13:13:32 | 显示全部楼层
chenying 发表于 2019-1-25 12:18
VisionPro不要用Job做项目啊,这样太麻烦了!康耐视本部都很少用这种模式

一般用什么方式做项目的,我一直用halcon,VP用的不多,麻烦您指点一下
hooper_he 发表于 2019-1-30 16:31:38 | 显示全部楼层
使用ToolBlock,然后C#直接调用ToolBlock,这样方便点。
hooper_he 发表于 2019-1-30 16:32:21 | 显示全部楼层
完美世界 发表于 2019-1-29 13:13
一般用什么方式做项目的,我一直用halcon,VP用的不多,麻烦您指点一下

使用ToolBlock,然后C#直接调用ToolBlock,这样方便点。
 楼主| 完美世界 发表于 2019-2-13 09:43:47 | 显示全部楼层
hooper_he 发表于 2019-1-30 16:32
使用ToolBlock,然后C#直接调用ToolBlock,这样方便点。

感谢,我试一下ToolBlock看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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