老大们帮帮我哦!!!线程怎样挂起的???????????(50分)

  • 主题发起人 主题发起人 sanlanggugu
  • 开始时间 开始时间
S

sanlanggugu

Unregistered / Unconfirmed
GUEST, unregistred user!
以下例子有异常: managethread为随便的一个线程(即使线程没有执行什么都可以)
unit2为线程单元 挂起的时候为什么错误哦
uses unit2;
var
thread1:managethread;
procedure TForm1.FormCreate(Sender: TObject);
begin
thread1:=managethread.Create(true);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
thread1.Resume;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
thread1.Suspend;
end;
挂起的时候为什么错误哦
 
看看你的线成是不是已经结束了
procedure thread.Execute;
begin
{ Place thread code here }
end;
你怎么写的
 
可能是挂起的时候程序已经结束了,可以试着在thread.Execute里加一句
While not Terminateddo
begin
//线程要做的事
end;
让线程进入一个死循环试试,并在程序结束(例如主窗体的
close或destroy中再加一句 (线程名字).Terminate 来终止线程
 
把thread1 的声明放到定义线程的单元。
 
procedure TForm1.FormCreate(Sender: TObject);
begin
thread1:=managethread.Create(true);
//你一开始就已经挂起了线程,
//应为thread1:=managethread.Create(false);
end;
//设为true的意思是一创建线程后立即挂起。
procedure TForm1.Button2Click(Sender: TObject);
begin
thread1.Suspend;
//线程都已经被挂起了,不出错才怪!!!
end;
 
同意楠少,以true为参数创建线程,线程在创建后就挂起,这样你可以修改它的参数,
参数修改完再执行。
 
多人接受答案了。
 
后退
顶部