博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
delphi判断线程是否正在运行
阅读量:6592 次
发布时间:2019-06-24

本文共 1896 字,大约阅读时间需要 6 分钟。

相关资料:

http://www.delphitop.com/html/xiancheng/376.html

 

1 unit Unit1; 2  3 interface 4  5 uses 6   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; 8  9 type10   TMyThread = class(TThread)//自定义的线程11   protected12     procedure Execute; override;13   end;14 15   TForm1 = class(TForm)16     Button1: TButton;17     procedure Button1Click(Sender: TObject);18   private19     {
Private declarations }20 public21 {
Public declarations }22 end;23 24 var25 Form1: TForm1;26 mytd: TMyThread;//线程对像27 implementation28 29 {
$R *.dfm}30 31 //返回值:0-已释放;1-正在运行;2-已终止但未释放;3-未建立或不存在32 function CheckThreadFreed(aThread: TThread): Byte;33 var34 I: DWord;35 IsQuit: Boolean;36 begin37 if Assigned(aThread) then38 begin39 IsQuit := GetExitCodeThread(aThread.Handle, I);40 if IsQuit then //If the function succeeds, the return value is nonzero.41 //If the function fails, the return value is zero.42 begin43 if I = STILL_ACTIVE then //If the specified thread has not terminated,44 //the termination status returned is STILL_ACTIVE.45 Result := 146 else47 Result := 2; //aThread未Free,因为Tthread.Destroy中有执行语句48 end49 else50 Result := 0; //可以用GetLastError取得错误代码51 end52 else53 Result := 3;54 end;55 56 procedure TMyThread.Execute;57 var58 I: Integer;59 begin60 for I := 0 to 500000 do61 begin62 Form1.Canvas.Lock;63 Form1.Canvas.TextOut(10, 10, IntToStr(I));64 Form1.Canvas.Unlock;65 end;66 end;67 68 procedure TForm1.Button1Click(Sender: TObject);69 begin70 if CheckThreadFreed(mytd)<>1 then //判断线程是否存在71 begin72 mytd := TMyThread.Create(True);73 mytd.FreeOnTerminate := True;74 mytd.Resume;75 end;76 end;77 78 end.
View Code

 

转载于:https://www.cnblogs.com/FKdelphi/p/7506041.html

你可能感兴趣的文章
我的友情链接
查看>>
windows网络安全以及常见网络***方式
查看>>
警告 初始化默认驱动器时出错“找不到运行 Active Directory Web 服务的默认服务器。”...
查看>>
JS字符串转换数字
查看>>
centos7-修改主机名
查看>>
面试宝典系列-mysql面试基础题
查看>>
spring data for mongo
查看>>
开启 URL 重写
查看>>
Journey源码分析二:整体启动流程
查看>>
Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
查看>>
七、MySQL中的字符集 - 系统的撸一遍MySQL
查看>>
centos7的php5.4竟然不支持原生的mysql
查看>>
使用IntelliJ IDEA开发SpringMVC网站(四)用户管理
查看>>
Maven依赖Scope标签用法
查看>>
ajax加载数据到页面无法打印的解决办法
查看>>
js 验证中文
查看>>
Linux下运行java DES AES加解密
查看>>
DataNode 运行状况
查看>>
牛津词典 2018 年度词汇 ——「有毒」!
查看>>
XIB的是用
查看>>