在Delphi中定义一个线程类,部分代码如下:
//类声明
type
TRecThrd=class(TThread)
private
protected
procedure Execute; override;
procedure Receivedata;
public
F:TextFile;
FCount:integer;
StopFlag:boolean; constructor Create;
procedure Resume;
procedure Suspend;
end;
...
//实例
RecThrd:TRecThrd;
...
//初始化类
constructor TRecThrd.Create;
begin
Suspended:=true;
FreeOnTerminate:=true;
StopFlag:=true;
Inherited Create(true);
end;系统为Win2000+Sp3+Delphi(英文版)
原来的系统在编译时没什么问题,后来整个系统重装(包括操作系统)后代码没有变,运行时出现了错误如下:注:调试发现在该类的实例的初始化时出错.( constructor Create过程)标题:Debugger Exception Notification
详细:Project Project1.exe raised exception class EThread with message
'Thread Error: 句柄无效.(6)' Process stopped.Use Step or Run to continue.
操作:OK/Help继续执行后出现.
标题:Project1
详细:Thread Error:句柄无效.(6)是什么原因,与系统有关系吗,为什么原来的系统没有错误?
//类声明
type
TRecThrd=class(TThread)
private
protected
procedure Execute; override;
procedure Receivedata;
public
F:TextFile;
FCount:integer;
StopFlag:boolean; constructor Create;
procedure Resume;
procedure Suspend;
end;
...
//实例
RecThrd:TRecThrd;
...
//初始化类
constructor TRecThrd.Create;
begin
Suspended:=true;
FreeOnTerminate:=true;
StopFlag:=true;
Inherited Create(true);
end;系统为Win2000+Sp3+Delphi(英文版)
原来的系统在编译时没什么问题,后来整个系统重装(包括操作系统)后代码没有变,运行时出现了错误如下:注:调试发现在该类的实例的初始化时出错.( constructor Create过程)标题:Debugger Exception Notification
详细:Project Project1.exe raised exception class EThread with message
'Thread Error: 句柄无效.(6)' Process stopped.Use Step or Run to continue.
操作:OK/Help继续执行后出现.
标题:Project1
详细:Thread Error:句柄无效.(6)是什么原因,与系统有关系吗,为什么原来的系统没有错误?
Inherited Create(true);
Suspended:=true;
FreeOnTerminate:=true;
StopFlag:=true;
调用父类的构造方法,父类构造函数中的代码还没有执行,这时候调用它的属性等当然会有问题了就好像机器还没有造好,你就要使用它,当然会出问题了
inherited Destroy;放后面