invoke的翻译

C#的这个关键字很熟,但不知道如何翻译比较好。和网友沟通,并查阅多篇博文,觉得“同步调用(invoke)和异步调用(beginvoke)”比较好。

VS2022很爽

C#的类名,会提示命名空间。C++调试的时候,可以看到向量元素的值。C++的宏桀骜难懂,尤其是多层嵌套的时候,VS2022有“展开内联”功能可解决此问题。VS选中一个变量,其它处的此变量也会高亮显示。VS2022选中v[i] 只高亮v[i]。

读取文件是否能线程加速

测试多次,读取同样的两个文件,同样的电脑。
    休眠500ms    读取二进制文件    Halcon的HImage的Read
单线程依次操作    约1000ms    100ms    2600ms左右
多线程    约500ms    100ms    5000ms左右
稳定性    非常稳定    用时非常不稳定,时高时低    用时较稳定
小结    有效    几乎无效    负作用明显
线程加速对读取文件无效,可能原因读取文件的瓶颈是:硬盘的转动速度。多个硬盘多线程也许有效。

HImage和HRegion

前家公司习惯用HObject,这家公司习惯用HImage和HObject。显然后者可理解性更强。用HObject的话,每次都需要区分那个是图形,那个是区域。

发布Debug版给客户

C++发布Debug(调试)版给客户,有两个问题:一,低版本VC(比如VC6)的Debug版的dll和Release版不同。所以Debug版,在客户那使用不了。二,断言影响客户使用。C#只有第二个问题。很多程序员不使用断言,那发布Debug版确实没问题。
调试版和发布版分开的优点:一,调试版显示调试、测试功能,发布版隐藏。二,
调试版不需要加密狗,发布版需要加密狗。

修改C#程序版本号无效

按以前的方式修改C#程序的版本号,总失败。原因是AssemblyFileVersion影响二进制文件的产品版本号和文件版本号。AssemblyVersion不影响。之前总是两者一起修改的。
C++的产品版本号和文件版本可以不同。版本号由4部分组成,原以为每部分都是0到99,用C#和C++试验了,都可以是65535,不能是65536,就是uint16的范围吧。
所以可以版本号第一位是年,第二位是月,第三位是日,第四位是编号。

视觉软件工程师需要老程序员支援

一年经验的视觉软件工程师,性价比最高的点是:铺战线(简单的业务和简单的硬件知识)。三年工作经验性价比最高的是:攻坚(深耕halcon算法)。五年工作经验的性价比最高的点:分工(概要设计师、开发组长)。之后是团队建设(部门经理)、利益分配(总监)。根本没多少精力分配到开发工具(开发语言、类库)、基础算法(树桩数组、动态规划)、通用知识(文字编码、文件格式)。