C#调用Halcon出现尝试读取或写入受保护的内存,这通常指示其他内存已损坏。System.AccessViolationException

一、现象

     在C#中调用Halcon,出现异常提示:尝试读取或写入受保护的内存,这通常指示其他内存已损坏。System.AccessViolationException

二、原因

    多个线程同时访问Halcon中的某个公共变量,导致程序报错

三、测试

    3.1 Halcon代码

      其中tsp_width为Halcon中的缓存尺寸

private void Test1()
{
    HOperatorSet.SetSystem("tsp_width", 500);
}

   3.2 多线程调用

     多线程进行访问,程序报错

        private void button1_Click(object sender, EventArgs e)
        {
            Task.Run(() => { Test1(); });
            Task.Run(() => { Test1(); });
            Task.Run(() => { Test1(); });
            Task.Run(() => { Test1(); });
        }

        private void Test1()
        {
            HOperatorSet.SetSystem("tsp_width", 500);
        }

3.3 改善措施

   参考多线程访问公共变量方法进行即可

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-20 00:48:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-20 00:48:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-20 00:48:02       87 阅读
  4. Python语言-面向对象

    2024-03-20 00:48:02       96 阅读

热门阅读

  1. python的封装应用

    2024-03-20 00:48:02       45 阅读
  2. BFS模板

    2024-03-20 00:48:02       41 阅读
  3. 蓝桥杯day2刷题日记

    2024-03-20 00:48:02       43 阅读
  4. 安卓UI面试题 41-45

    2024-03-20 00:48:02       41 阅读
  5. 遍历list过程中调用remove方法

    2024-03-20 00:48:02       34 阅读
  6. IOS面试题object-c 116-120

    2024-03-20 00:48:02       37 阅读
  7. ZCC5429 异步升压芯片

    2024-03-20 00:48:02       43 阅读
  8. 学完Efficient c++ (46-47)

    2024-03-20 00:48:02       45 阅读