And*_*kov 5 delphi multithreading destroy
Hello在我的表单中,我在运行时创建了TFrame.在这个框架中,我创建了后台线程,并在无限循环中执行命令.但是当我摧毁这个框架时,我应该销毁这个线程.我试试
thread.Suspend;
thread.Terminate;
FreeAndNil(thread);
Run Code Online (Sandbox Code Playgroud)
但得到AV和ThreadError.我应该如何销毁线程?
Lin*_*nas 13
您必须确保线程退出其Execute
方法以正确终止它.
代码可能是这样的:
procedure TThread.Execute;
begin
while not Self.Terminated do
begin
//do something
end;
end;
Run Code Online (Sandbox Code Playgroud)
当你想破坏线程时调用它:
thread.Terminate;
thread.WaitFor;
FreeAndNil(thread);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7254 次 |
最近记录: |