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算法)。五年工作经验的性价比最高的点:分工(概要设计师、开发组长)。之后是团队建设(部门经理)、利益分配(总监)。根本没多少精力分配到开发工具(开发语言、类库)、基础算法(树桩数组、动态规划)、通用知识(文字编码、文件格式)。