为什么无法结束这个子线程?
为什么无法结束这个子线程?似乎是回调函数的问题,把回调函数去掉就没有问题了.
type
TCCDThread = class(TThread)
private
HHV: HWND;
protected
procedure Execute; override;
public
constructor Create(aFlag: boolean);
destructor Destroy; override;
end;
一个全局回调函数
function aSnapCallBack(pInfo: PHV_SNAP_INFO): integer;
begin
//进行图象转换和保存为JPEG格式的操作
end;
constructor TCCDThread.Create(aFlag: boolean);
begin
//设置CCD的操作
Inherited Create(aFlag);
end;
destructor TCCDThread.Destroy;
begin
//停止CCD采集和释放资源
inherited;
end;
procedure TCCDThread.Execute;
begin
FreeOnTerminate:=True;
//设置回调函数
HVOpenSnap(HHV,aSnapCallBack,aPointer);
//开始CCD采集
HVStartSnap(HHV,ppBuff,1);
while not Terminated do
begin
sleep(1000);
end;
end;
//线程运行后能正常的显示和保存图象,但在主线程中使用
CCDThread.Suspend;
CCDThread.Terminate;
不能停止线程