DELPHI 用TThread如何判断线程是不是存在 并且释放线程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DELPHI 用TThread如何判断线程是不是存在 并且释放线程相关的知识,希望对你有一定的参考价值。
判断线程是否存在使用:if Assigned(workthread) then
begin
//do work
end;
释放线程使用:
可以使线程对象自动释放,使用:workthread.FreeOnTerminate :=True;
如果想自己释放线程则应该先判断线程是否存在和是否结束然后再释放,使用:
if Assigned(workthread) and (not workthread.Finished) then
begin
//workthread.terminate; //停止线程
//workthread.suspended; //使线程暂停
以上两种都可以,如果使用Terminate则应该等待线程完全结束
workthread.Free; //释放线程
end;追问
我做的是 LABEL的 CAPTION 每秒加1的刷新 用你的方法释放会报句柄错误
追答给我你的邮箱,我简单的写个例子,发给你!
参考技术A 通过线程 Handle 或ThreadID来识别线程, 通过 属性 Terminated 测试线程是否终止. 参考技术B Thread.FreeOnTerminate := True; 时线程执行体结速就会自动释放 参考技术C 线程和普通过程,并无二样,一段过程执行完毕后,它的使命也就完成了.无需释放销毁.delphi如何判断RichEdit是不是显示到底部了?
如题,用SendMessage(RichEdit1.Handle, EM_SCROLL, SB_LINEDOWN, 0);richedit里面的文本往下滚动,当滚到底部时候showmessage一下,如何判断是否已经滚到底部了?
没有recordcount
var
n : Integer;
......
n := SendMessage......
if n and $FFFF = 0 then
ShowMessage( '到底了' );
或者
if LongRec( n ).Words[0] = 0 then
ShowMessage...;
...... 参考技术A var
i :integer;
if i = richedit.RecondCount-1 then
begin
showmessage('the last one!');
end
以上是关于DELPHI 用TThread如何判断线程是不是存在 并且释放线程的主要内容,如果未能解决你的问题,请参考以下文章