试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)

试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)问题的原因是x86和x64不匹配

修改编译的x86和x64编译就解决这个问题

 HOperatorSet.FindShapeModel前先进行HSystem.SetSystem("temporary_mem_cache","false");可以减少HALCON error #6001: Not enough memory available in operator find_shape_model

C#多线程程序CPU占用巨高 找whlie循环中是否Sleep线程,Sleep(1);即可解决问题。

if (form.ParentForm==null)

"global_mem_cache" 缓存的使用方式

"temporary_mem_cache"  临时缓存的使用,true重载共享,false专有

1)配置较高  用set_system('temporary_mem_cache', 'true')/set_system('temporary_mem_cache', 'exclusive')

2)配置较低  用set_system('temporary_mem_cache', 'false')/set_system('temporary_mem_cache', 'idle')

temporary_mem_cache

此参数控制临时内存缓存的操作模式。临时内存缓存用于通过缓存在执行运算符期间临时使用的内存来加速应用程序。对于大多数应用程序,默认设置('exclusive')将产生最佳结果。支持以下模式:

“idle”临时内存缓存被关闭。此模式将使用最少的内存,但与其他模式相比,也会降低性能。

“shared”所有临时内存全局缓存在临时内存库中。与“独占”模式相比,此模式使用的内存更少,但通常也会提供更少的性能。

“exclusive”为每个线程本地缓存所有临时内存。此模式将使用最多的内存,但通常也会提供最佳性能。

“aggregate”临时内存块大于使用“alloctmp_max_blocksize”参数设置的阈值,这些临时内存块将缓存在全局内存库中,而所有较小的内存块将聚合到单个块中,该块在本地为每个线程缓存。如果全局内存库被禁用,则会释放大的块。聚合块的大小将根据线程到目前为止看到的临时内存使用情况进行调整,但不会大于“alloctmp_max_blocksize”(如果设置)或小于“alloctmp_min_blocksize”(如果设置)。此模式可平衡内存使用和速度,但需要为应用程序的内存使用模式正确设置“alloctmp_min_blocksize”和“alloctmp_max_blocksize”,以提高效率。

请注意,缓存模式“idle”设置为独占运行模式,而其他模式设置为可重入模式。

为了向后兼容,还接受值“false”和“true”;它们分别对应于“idle”和“exclusive”。

你可能感兴趣的:(工作记录,c#)