我用TerminateThread(FirstThread.handle,0);为什么无法中止线程?

doutao82 2004-03-24 09:22:29
还有,为什么同时执行两个线程的过程中,为什么就无法在这个窗体中进行其他操作?
...全文
183 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
greenwaterandice 2004-04-14
  • 打赏
  • 举报
回复
tag:cardinal;//delphi7中可以这样结束线程
if GetExitCodeThread(ThreadZYTongJi.Handle,tag) then // 中断统计
begin
TerminateThread(ThreadZYTongJi.Handle,tag);

end;
aiirii 2004-03-24
  • 打赏
  • 举报
回复
應該用
FirstThread.handle

TTestThread 是個類名吧, 不可以直接用的, 你要用實例的handle

doutao82 2004-03-24
  • 打赏
  • 举报
回复
if GetExitCodeThread(TTestThread.handle,tag)
为什么总提示TTestThread.handle有问题?如:(Method identifier expected)
aiirii 2004-03-24
  • 打赏
  • 举报
回复
BOOL GetExitCodeThread(
HANDLE hThread,
LPDWORD lpExitCode
);

你用錯了!!

if GetExitCodeThread(TTestThread.handle,tag) then
TerminateThread(TTestThread.handle,tag);
doutao82 2004-03-24
  • 打赏
  • 举报
回复
procedure TMainForm.Button2Click(Sender: TObject);
var tag:integer;
begin
tag:=GetExitCodeThread(TTestThread);
TerminateThread(TTestThread.handle,tag);
end;

为什么不行?
aiirii 2004-03-24
  • 打赏
  • 举报
回复
你必須用
GetExitCodeThread
, 然後,
>>TerminateThread(FirstThread.handle,0);
第二個參數是
dwExitCode
[in] Exit code for the thread. Use the GetExitCodeThread function to retrieve a thread's exit value.

>>为什么同时执行两个线程的过程中,为什么就无法在这个窗体中进行其他操作?
你的操作有問題!!!!
yitong0834 2004-03-24
  • 打赏
  • 举报
回复
关注
doutao82 2004-03-24
  • 打赏
  • 举报
回复
没错呀,TTestThread使我建的线程名!

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧