HALCON10 函数中文手册
- 格式:pdf
- 大小:20.51 MB
- 文档页数:170
halcon算子中文解释comment ( : : Comment : ) 注释语句exit ( : : : ) 退出函数open_file ( : : FileName, FileType : FileHandle ) 创建('output' or 'append' )或者打开(output )文本文件fwrite_string ( : : FileHandle, String : ) 写入stringdev_close_window ( : : : ) 关闭活跃的图形窗口。
read_image ( : Image : FileName : ) ;加载图片get_image_pointer1 ( Image : : : Pointer, Type, Width, Height )获得图像的数据。
如:类型(= ' 字节',' ' ',uint2 int2 等等) 和图像的尺寸( 的宽度和高度) dev_open_window( : :Row,Column,WidthHeight,Background :WindowHandle ) 打开一个图形的窗口。
dev_set_part ( : : Row1, Column1, Row2, Column2 : ) 修改图像显示的位置dev_set_draw (’fill’)填满选择的区域dev_set_draw (’margin’)显示的对象只有边缘线,dev_set_line_width (3) 线宽用Line Width 指定threshold ( Image : Region : MinGray, MaxGray : ) 选取从输入图像灰度值的g 满足下列条件:MinGray < = g < = MaxGray 的像素。
dev_set_colored (number) 显示region 是用到的颜色数目dev_set_color ( : : ColorName : ) 指定颜色connection ( Region : ConnectedRegions : : ) 合并所有选定像素触摸相互连通区fill_up ( Region : RegionFillUp : : ) 填补选择区域中空洞的部分fill_up_shape ( Region : RegionFillUp : Feature, Min, Max : )select_shape ( Regions : SelectedRegions : Features, Operation, Min, Max : ) 选择带有某些特征的区域,Operation 是运算,如“与”“或”smallest_rectangle1 ( Regions : : : Row1, Column1, Row2, Column2 ) 以矩形像素坐标的角落,Column1,Row2(Row1,Column2) 计算矩形区域( 平行输入坐标轴) 。
read_image (WaferDies, 'wafer_dies')read_image (图片在程序中的名称, '图片在计算机中的名称')reopen_window_fit (WaferDies, 700, 0, 0, WindowHandle)reopen_window_fit (图片在程序中的名称, 700, 0, 0, WindowHandle)init_font (WindowHandle, -1, 2)和字体有关的一个命令get_window_extents (WindowHandle, _, _, WindowWidth, WindowHeight)设置窗口大小和位置dev_update_all ('off')把所有的dev_update从'on'设到'off',这似乎是设定文本显示的滚动与否dev_set_draw ('margin')定义区域填充模式。
如果DrawMode设置为'fill',输出地区被填满,如果设置为'margin',只有轮廓显示出来。
get_image_pointer1 (WaferDies, _, _, Width, Height)get_image_pointer1( Image : : : Pointer, Type, Width, Height )Access the pointer of a channel.The operator get_image_pointer1 returns a pointer to the first channel of the image Image. Additionally, the image type (Type= 'byte', 'int2', 'uint2', etc.) and the image size (width and height) are returned. Consequently, a direct access to the image data in the HALCON database via the pointer is possible from the programming language in which HALCON is used. An image is stored in HALCON linearized in row major order, i.e., line by line.指令get_image_pointer1返回一个图像WaferDies的第一通道的指针。
halcon fill_up函数摘要:1.函数halcon fill_up简介2.函数的作用和应用场景3.函数的参数说明4.函数的使用方法和示例5.总结正文:【1.函数halcon fill_up简介】halcon fill_up函数是Halcon图像处理软件中的一种常用函数,用于填充图像中的空白区域。
该函数可以对图像进行预处理,提高图像处理效率和准确性。
【2.函数的作用和应用场景】fill_up函数的主要作用是在图像中填充空白区域,使得图像更加完整。
在实际应用中,该函数常用于以下场景:- 对图像进行预处理,消除图像中的噪声,提高图像质量- 在图像分割、识别等处理过程中,填充目标物体周围的空白区域,使目标物体更加完整【3.函数的参数说明】fill_up函数需要两个参数:- 输入图像(Image):输入的图像数据,可以是单通道或多通道图像。
- 填充模板(Template):一个预定义的填充图案,用于填充图像中的空白区域。
【4.函数的使用方法和示例】fill_up函数的使用方法如下:```Image := fill_up(InputImage, Template)```其中,InputImage是需要填充的图像,Template是填充图案。
示例:```1.读取图像Image1 := read_image("image1.bmp")2.创建填充模板Template := create_struct_template(1, 1, "black")3.使用fill_up函数填充图像Image2 := fill_up(Image1, Template)4.显示填充后的图像display(Image2)```【5.总结】halcon fill_up函数是一个实用的图像预处理函数,通过填充图像中的空白区域,可以提高图像处理的效果和效率。
halcon create_shape_model参数
Halcon的create_shape_model函数用来创建形状模型,其参数如下:
1. ModelID:输出参数,形状模型的ID。
2. ObjectID:输入参数,包含待训练的模板图像的ID。
3. ScaleMin:输入参数,最小缩放因子。
4. ScaleMax:输入参数,最大缩放因子。
5. ScaleStep:输入参数,缩放因子的步长。
6. Metric:输入参数,形状匹配的度量方式,可以选择“use_polarity”表示使用极性信息进行匹配。
7. NumLevels:输入参数,形状模型金字塔的层数。
8. AngleStart:输入参数,旋转角度的起始值。
9. AngleExtent:输入参数,旋转角度的范围。
10. AngleStep:输入参数,旋转角度的步长。
11. Optimization:输入参数,形状模型的优化方式。
12. Contrast:输入参数,形状模型的对比度。
13. MinContrast:输入参数,形状模型的最小对比度。
14. GenParamName:输入参数,运行时参数的名称。
15. GenParamValue:输入参数,运行时参数的值。
更详细的描述和解释可以在Halcon的开发文档中找到。
HALCON算子函数整理1-19章halcon算子中文解释open_file(::FileName,FileType:FileHandle)创建('output'or'append')或者打开(output)文本文件fwrite_tring(::FileHandle,String:)写入tringdev_cloe_window(:::)关闭活跃的图形窗口。
read_image(:Image:FileName:);加载图片get_image_pointer1(Image:::Pointer,Type,Width,Height)获得图像的数据。
如:类型(='字节',''',uint2int2等等)和图像的尺寸(的宽度和高度)dev_open_window(::Row,Column,WidthHeight,Background:WindowHan dle)打开一个图形的窗口。
dev_et_part(::Row1,Column1,Row2,Column2:)修改图像显示的位置dev_et_draw(’fill’)填满选择的区域dev_et_draw(’margin’)显示的对象只有边缘线,dev_et_line_width(3)线宽用LineWidth指定threhold(Image:Region:MinGray,Ma某Gray:)选取从输入图像灰度值的g满足下列条件:MinGray<=g<=Ma某Gray的像素。
dev_et_colored(number)显示region是用到的颜色数目dev_et_color(::ColorName:)指定颜色connection(Region:ConnectedRegion::)合并所有选定像素触摸相互连通区fill_up(Region:RegionFillUp::)填补选择区域中空洞的部分fill_up_hape(Region:RegionFillUp:Feature,Min,Ma某:)elect_hape(Region:SelectedRegion:Feature,Operation,Min,Ma 某:)选择带有某些特征的区域,Operation是运算,如“与”“或”mallet_rectangle1(Region:::Row1,Column1,Row2,Column2)以矩形像素坐标的角落,Column1,Row2(Row1,Column2)计算矩形区域(平行输入坐标轴)dev_diplay(Object:::)显示图片dip_rectangle1(::WindowHandle,Row1,Column1,Row2,Column2:)显示的矩形排列成的。
halcon 本地函数
Halcon是一个强大的机器视觉软件库,提供了一系列的函数和工具,用于
处理和分析图像数据。
在Halcon中,本地函数(HDevelop)是一种特殊
的函数,用于在HDevelop环境中进行图像处理和分析。
本地函数通常用于执行特定的图像处理任务,例如图像增强、特征提取、目标检测等。
这些函数通常由Halcon的开发人员编写,并在HDevelop环境中提供。
通过使用本地函数,用户可以更加灵活地定制和扩展Halcon的功能。
要使用本地函数,您需要先在HDevelop环境中创建一个新的程序或脚本,然后导入所需的本地函数库。
您可以使用Halcon的API或HDevelop的脚本语言来调用这些函数,并传递适当的参数以执行所需的图像处理任务。
请注意,本地函数的可用性和功能可能因Halcon版本而异。
要获取更多关于本地函数的信息,请参考Halcon的官方文档或与Halcon的支持团队联系。
halcon加减乘除运算-回复Halcon是一款强大的机器视觉软件,被广泛应用于工业自动化、医疗影像、交通监控等领域。
它的强大之处不仅仅在于其先进的图像处理算法,还在于其丰富的运算功能,包括加减乘除等基本运算。
下面,我将一步一步回答如何在Halcon中进行加减乘除运算。
首先,让我们了解一下Halcon的基本数据类型。
在Halcon中,数字可以用整数、浮点数和复数三种数据类型表示。
其中,整数类型表示为整数值,浮点数类型表示为带小数点的数值,复数类型表示为实部和虚部的组合。
这些数据类型可以用于各种运算操作。
Halcon中的加法运算符是"+",用于将两个数值相加。
例如,若要计算3和4的和,可以使用以下代码:Halcona := 3b := 4c := a + b这段代码首先将3赋给变量a,将4赋给变量b,然后使用运算符"+"将a和b相加,结果赋给变量c。
在代码运行后,变量c的值将变为7。
Halcon中的减法运算符是"-",用于将一个数值减去另一个数值。
以下是一个示例代码,演示如何计算9减去5的结果:Halcona := 9b := 5c := a - b这段代码将9赋给变量a,将5赋给变量b,然后使用运算符"-"将a 减去b,结果赋给变量c。
在代码运行后,变量c的值将变为4。
Halcon中的乘法运算符是"*",用于将两个数值相乘。
以下是一个示例代码,演示如何计算2乘以6的结果:Halcona := 2b := 6c := a * b这段代码将2赋给变量a,将6赋给变量b,然后使用运算符"*"将a 和b相乘,结果赋给变量c。
在代码运行后,变量c的值将变为12。
Halcon中的除法运算符是"/",用于将一个数值除以另一个数值。
以下是一个示例代码,演示如何计算10除以2的结果:Halcona := 10b := 2c := a / b这段代码将10赋给变量a,将2赋给变量b,然后使用运算符"/"将a 除以b,结果赋给变量c。
halcon教程Halcon是一种广泛应用于机器视觉领域的软件库,它提供了丰富的图像处理和分析功能。
本教程将介绍Halcon的基本使用方法,涵盖图像读取、预处理、特征提取、目标检测等常用操作。
1. 图像读取使用Halcon的read_image函数可以从文件中读取图像数据。
可以通过指定文件路径来读取图像,例如:read_image(Image, 'image.jpg')2. 图像预处理在图像处理之前,通常需要对图像进行一些预处理操作,以改善后续处理的效果。
Halcon提供了丰富的预处理函数,如灰度化、平滑、滤波等。
例如,可以使用以下代码对图像进行灰度化处理:gray_image(Image, GrayImage)3. 特征提取Halcon提供了多种特征提取函数,可以从图像中获取有用的信息。
常用的特征包括边缘、角点、斑点等。
例如,可以使用find_edges函数在图像中提取边缘信息:find_edges(GrayImage, Edges, 10, 40)4. 目标检测目标检测是机器视觉中的一个重要任务,Halcon提供了多种目标检测函数和算法。
例如,可以使用find_shape_models函数对图像中的形状进行检测:find_shape_models(GrayImage, Model, AngleStart, AngleExtent, MinScore, NumMatches, SubPixel, Greediness, Result)以上是一些Halcon的基本用法,通过学习这些基础知识,您可以在机器视觉应用中更好地运用Halcon库进行图像处理和分析。
希望这些信息对您有所帮助!。
第一章HALCON恭喜诸位。
您采用了这套在产品研发,研究以及教育方面都有顶尖表现的影像分析软件。
HALCON 可在UNIX,NT/2000/xp 等等平台下作业,它独特的Library 提供了千余个为影像分析作业,数据可视化,除错等等功能所设计的运算符,用户可以利用它的功能以C 及C++等程序语言自行撰写图像处理程序。
此外,HALCON 亦支持Windows NT/2000/XP 下的COM 接口,所以您也可以透过Visual Basic 使用它,使得系统的整合更为容易。
HALCON 的设计使得影像区域,边缘,以及等值线的处理上更方便,优化的算法让这套软件在一般的硬件上也有很好的指令周期。
HALCON 包含了名为HDevelop 的程序设计界面,减少了设计软件所花的时间,还有一个好用的联机帮助,您可以查到关于HALCON 运算符间功能相近的替代者,可能的变化,以及交互的参考。
HALCON 从6.0 版开始提供两个版本,除了标准版外,还有支持平行运算的parallel HALCON,可使用多CPU 的机器,提高指令周期。
以下是HALCON 特点的说明1.1HALCON 强化的opreator library 提供有效率又有弹性的图像处理功能,简化了影像程序的设计HALCON operator library 有千余个运算符。
所有的HALCON 应用程序(像是HDevelop 和HALCON C++程序)皆是利用这个library 来工作。
这些运算符功能广泛,包含了简单的读取影像,到复杂的像是Kalman 滤波等。
基本上这些运算符各有其单一功能,而非包含了各种运算,因此一个影像分析功能是由好几个运算符组成的,所以其弹性远大于由少数而复杂的运算符组成的分析程序。
特化而复杂的运算符往往只适用于某些工作甚至于影像,应用范围狭窄。
相对于这种窘境,HALCON 运算符却能任意组合来完成工作。
众多的运算符中,有些是以不同的算法来达到相同的功能,例如只需要粗略定位时,可用fast_match 来作最快的运算,需要精确定位时,用best_match,以较多的时间来求得最准确结果。
halcon加减乘除运算Halcon 是一款由德国MVTec公司开发的机器视觉软件,广泛应用于工业自动化、质量检测、医疗影像处理等领域。
在Halcon中,加减乘除运算是基本的数学运算,用于处理图像数据和数值计算。
加减乘除运算在Halcon中的实现主要依赖于Halcon库中的算术函数。
这些函数可以用于对图像、矩阵和数值进行各种算术运算。
以下是一些常用的加减乘除函数:1. add_image():将两个图像相加,用于图像增强和组合。
2. subtract_image():从第一个图像中减去第二个图像,用于消除背景或突出特定区域。
3. multiply_image():将一个图像与一个常数相乘,用于调整图像的对比度和亮度。
4. divide_image():将一个图像除以另一个图像,用于消除噪声和异常值。
5. add_gen_proc():将一个通用过程(gen_proc)与另一个通用过程相加,用于组合多个处理步骤。
6. subtract_gen_proc():从一个通用过程中减去另一个通用过程,用于优化处理流程。
7. multiply_gen_proc():将一个通用过程与一个常数相乘,用于调整处理参数。
8. divide_gen_proc():将一个通用过程除以另一个通用过程,用于消除冗余步骤。
这些函数的使用方法如下:1. 调用函数时需要传入相应的参数,如两个图像或两个通用过程。
2. 参数可以是图像、矩阵或数值类型。
3. 函数执行后返回计算结果,可以根据需要将其存储在变量中或直接用于后续处理。
下面是一个简单的示例代码,展示了如何使用Halcon中的加减乘除函数对图像进行基本运算:```csharp// 读取两个灰度图像img1 := read_image(gray, 'gray', 'uint8');img2 := read_image(gray, 'gray', 'uint8');// 将第一个图像乘以2img1 := multiply_image(img1, 2);// 将第二个图像加100img2 := add_image(img2, 100);// 将两个图像相加得到结果图像result := add_image(img1, img2);// 显示结果图像disp_obj(result);```上述代码中,首先读取了两个灰度图像img1和img2,然后分别对它们进行了乘以2和加100的运算。
Halcon 函数参数一、什么是 Halcon 函数参数Halcon 是一种用于机器视觉应用开发的软件库,它提供了一系列函数来处理图像和进行图像分析。
在使用 Halcon 进行开发时,函数参数是非常重要的一部分。
函数参数是指在调用函数时传递给函数的值,它们决定了函数的行为和输出结果。
正确理解和使用函数参数是使用 Halcon 进行图像处理的关键。
二、Halcon 函数参数的基本规则在使用 Halcon 函数时,我们需要遵循一些基本的规则来正确地设置函数参数。
以下是一些常见的规则:1.函数参数的顺序很重要:在调用函数时,参数的顺序必须与函数定义时的顺序一致,否则可能会导致错误的结果。
2.函数参数的类型必须匹配:函数参数必须与函数定义时指定的类型相匹配,否则会导致编译错误或运行时错误。
3.函数参数的数量必须正确:函数调用时必须传递正确数量的参数,否则会导致编译错误或运行时错误。
4.函数参数可以是常量或变量:函数参数可以是常量或变量,常量是指在函数调用时直接指定的值,变量是指在函数调用前定义并赋值的值。
三、Halcon 函数参数的类型Halcon 函数参数的类型包括基本类型和复合类型。
基本类型包括整数、浮点数、字符串等,而复合类型包括数组、图像、区域等。
以下是一些常见的函数参数类型:1.整数:用于表示整数值,如图像的宽度、高度等。
2.浮点数:用于表示浮点数值,如图像的灰度值、像素坐标等。
3.字符串:用于表示文本信息,如文件路径、图像名称等。
4.数组:用于表示一组相同类型的值,如图像的像素值数组。
5.图像:用于表示图像数据,如读取图像、显示图像等。
6.区域:用于表示图像中的感兴趣区域,如提取区域、合并区域等。
四、Halcon 函数参数的传递方式在调用 Halcon 函数时,函数参数可以通过值传递或引用传递的方式进行传递。
以下是两种传递方式的特点:1.值传递:函数参数的值在函数调用时被复制到函数的局部变量中,函数对局部变量的修改不会影响到原始参数的值。
halcon select_shape_std 参数解释标题:深入理解Halcon中的select_shape_std参数Halcon是一款强大的机器视觉软件,其内置的select_shape_std函数在形状分析和识别中起着关键作用。
该函数主要用于从图像中选择出满足特定标准的形状特征。
本文将详细解析select_shape_std函数的各个参数,以帮助读者更好地理解和使用这一功能。
一、基本介绍select_shape_std函数的基本语法为:select_shape_std : Shape, Region, Sigma, Mode, Filter, FeatureName, ResultHandle, Row, Column, Angle, MinScore, MaxNumMatches, MatchHandle, SelectedRegion其中,各个参数的含义如下:1. Shape:输入的形状特征,可以是点、线、圆、椭圆、矩形等。
2. Region:待搜索的图像区域。
3. Sigma:高斯滤波器的标准差,用于平滑图像以减少噪声影响。
4. Mode:匹配模式,包括'normal'(正常匹配)、'least_squares'(最小二乘匹配)和'affine'(仿射变换匹配)。
5. Filter:形状过滤器,用于定义形状匹配的条件。
6. FeatureName:要搜索的形状特征的名称。
7. ResultHandle:返回的结果句柄。
8. Row和Column:输出的最佳匹配位置的行和列坐标。
9. Angle:输出的最佳匹配的角度。
10. MinScore:最小匹配得分,低于此值的匹配结果将被忽略。
11. MaxNumMatches:最大匹配数量,超过此数量的匹配结果将被忽略。
12. MatchHandle:匹配句柄,用于存储匹配结果的信息。
13. SelectedRegion:输出的选定形状区域。
halcon 延时函数标题:Halcon延时函数:使用中括号实现精确的时间控制引言:在现代工业生产中,时间的精确控制对于许多技术应用来说是至关重要的。
在Halcon图像处理软件中,延时函数是一项非常重要的功能,用于在图像采集和处理过程中实现时间的精确控制。
本文将以Halcon延时函数为主题,详细介绍如何使用中括号实现精确的时间控制,帮助读者更好地理解和应用这一功能。
第一部分:介绍延时函数的作用和基本原理(600字)1.1 延时函数的作用:延时函数是Halcon提供的一种控制时间间隔的工具,可以用于暂停程序的执行一段预设的时间。
它在图像采集、处理和算法优化等应用中发挥重要作用,用于控制图像采集的频率、算法的执行频率以及系统的响应速度等。
1.2 延时函数的基本原理:Halcon延时函数使用中括号([])来表示延时的时间长度,内部是以毫秒为单位的整数值。
当延时函数被调用时,程序将在指定的时间范围内暂停执行,并等待指定的时间长度。
例如,delay(1000)代表暂停程序的执行1秒钟。
第二部分:详细介绍延时函数的使用方法和功能(2000字)2.1 基本的延时函数使用:在Halcon中,可以使用delay函数来实现延时的功能。
通过在程序中调用该函数并传入一个整数值,可以将程序的执行暂停指定的时间段。
例如:delay(1000); 暂停程序执行1秒钟2.2 多个延时函数的串行使用:在某些场景下,我们需要实现多个延时函数的串行执行,即等待一个延时函数结束后再执行下一个延时函数。
在Halcon中,可以使用中括号([])来实现这一需求。
例如:[delay(1000); 暂停程序执行1秒钟delay(2000); 暂停程序执行2秒钟]2.3 延时函数的循环调用:除了串行执行多个延时函数外,有时我们可能需要循环调用某个延时函数。
在Halcon中,可以使用循环结构和计数器变量来实现这一需求。
例如:int i;for (i = 0; i < 5; i++){delay(1000); 暂停程序执行1秒钟}2.4 延时函数的条件控制:在某些情况下,我们可能需要根据不同的条件选择是否执行延时函数。
HALCON实例调试所遇函数解读第⼀个程序 “gen_measure_arc.hdev”1、AngleStart := -rad(55);该⾏程序的意思是将55度转化为弧度制;AngleStart= - 0.959931。
2、为基于⼀个环形圆弧提取直线边缘做准备:gen_measure_arc( : : CenterRow, CenterCol, Radius, AngleStart, AngleExtent, AnnulusRadius, Width, Height, Interpolation : MeasureHandle)圆弧的中⼼坐标:(CenterRow, CenterCol);圆弧的半径:Radius圆弧的起始⾓度:AngleStart圆弧的⾓度范围:AngleExtent圆环的半径:AnnulusRadius处理后的图形宽度:Width处理后的图形⾼:Height所⽤插值⽅法:Interpolation以上参数都是控制输⼊参数测量物体句柄:MeasureHandle以上参数是控制输出参数。
如果该算⼦的所有参数值都是对的,那么将返回⼀个值“2”(H_MSG_TRUE)。
之前所⽤算⼦可能有draw_circle。
3、基于⼀个长⽅形或者圆弧提取直线边缘:measure_pos(Image : : MeasureHandle, Sigma, Threshold, Transition, Select : RowEdge, ColumnEdge, Amplitude, Distance)输⼊图像(单通道图像):Image以上参数是图形输⼊参数;测量对象句柄:MeasureHandle⾼斯平滑的标准⽅差:Sigma(>=0.4)最⼩边缘幅度值:Threshold亮或者暗边缘:Transition结束点的选择:Select以上参数是控制输⼊参数;边缘的中⼼⾏坐标(y):RowEdge边缘的中⼼列坐标(x):ColumnEdge边缘的幅度值:Amplitude连续边缘之间的距离:Distance以上参数是控制输出参数。
sub_image (ImageConverted1, ImageConverted2, ImageSub, 1, 0)一幅图减另一幅图。
用一幅图的灰度减另一幅的灰度成新的一幅图。
mult_image (Image, ImagePart, ImageResult, 0.015, 0)一幅图加一幅成的一幅图convert_image_type (Traffic2, ImageConverted2, 'int2')转换图像的格式crop_part (ImageNoise, ImagePart, 0, 0, Width, Height)取出一幅图的中部分dots_image (ImageResult, DotImage, 5, 'dark', 2)取出图像中圆点partition_dynamic (SelectedRegions, Partitioned, 25, 20)根据各个区域的特征将各个区域分割开。
intersection (Partitioned, Region, Characters)取出两个区域中重叠的部分,如果Region 有两个区域在Partitioned 中,则这两个区域合并成一区域。
difference (RegionDilation, RegionErosion, RegionDifference)取出两个区域中不重叠的部分。
critical_points_sub_pix (FilterResponse, 'facet', 1.5, 0.7, RowMin, ColMin, RowMax, ColMax, RowSaddle, ColSaddle)取出图像中的关键点。
corner_response (Image, FilterResponse, 3, 0.04)auto_threshold (Image, Regions, 10)自动阈值分割,根据灰度直方图中两波峰中的波谷取出阈值。
8.10 并行执行HDevelop语言支持在主线程中启动子线程进行并行函数调用和算子调用。
线程启动后,子线程由线程ID标识,该线程ID是取决于操作系统的整数编号。
子线程的执行独立于启动它们的线程。
因此,无法预测指定线程结束的确切时间点。
如果要访问一组线程返回的数据,则需要显式等待相应线程完成。
默认情况下,HDevelop将线程数限制为20。
如果需要,可以在首选项中修改此数字(请参见第171 页的“General Options -> General Options”部分)。
限制并行线程数的主要原因是为了防止用户由于编程错误而无意中生成大量线程。
在这种情况下,系统负载和内存消耗可能会增长到非常高,以至于HDevelop可能变得无响应。
请注意,线程数包括所有“活着”的线程,尤其是还包括已经完成但仍被变量引用的线程。
在调整线程限制时必须考虑到这一点。
有关线程生命周期的信息,另请参见第876页上的8.10.3章节“HDevelop中线程的执行”部分。
8.10.1 启动一个子线程要启动一个新线程,请在相应的算子或函数调用前加上par_start限定符:此调用在后台启动假设函数gather_data()作为新的子线程,并继续执行后续程序行。
线程ID在变量ThreadID中返回,该变量ThreadID是必须要在尖括号中指定的参数。
在HDevEngine中,给定的ThreadID仅在启动线程的程序中有效,这是与HDevelop不同的。
请注意,par_start不是实际的算子,而仅仅是修改调用行为的限定符。
因此,无法在算子窗口中选择par_start。
如果启动一个新的子线程将超过配置的最大线程数(见上文),则会引发异常。
您还可以从算子窗口将函数或算子调用作为一个子线程去启动(参见图8.3)。
设置方法为:请打开算子窗口底部的“高级并行选项”部分,勾选复选框并输入将保存线程ID的变量的名称。
如果双击包含par_start限定符的程序行,并行化选项也将显示在算子窗口中。