delphi判断线程是否正在运行
相关资料:
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 type 10 TMyThread = class(TThread)//自定义的线程 11 protected 12 procedure Execute; override; 13 end; 14 15 TForm1 = class(TForm) 16 Button1: TButton; 17 procedure Button1Click(Sender: TObject); 18 private 19 { Private declarations } 20 public 21 { Public declarations } 22 end; 23 24 var 25 Form1: TForm1; 26 mytd: TMyThread;//线程对像 27 implementation 28 29 {$R *.dfm} 30 31 //返回值:0-已释放;1-正在运行;2-已终止但未释放;3-未建立或不存在 32 function CheckThreadFreed(aThread: TThread): Byte; 33 var 34 I: DWord; 35 IsQuit: Boolean; 36 begin 37 if Assigned(aThread) then 38 begin 39 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 begin 43 if I = STILL_ACTIVE then //If the specified thread has not terminated, 44 //the termination status returned is STILL_ACTIVE. 45 Result := 1 46 else 47 Result := 2; //aThread未Free,因为Tthread.Destroy中有执行语句 48 end 49 else 50 Result := 0; //可以用GetLastError取得错误代码 51 end 52 else 53 Result := 3; 54 end; 55 56 procedure TMyThread.Execute; 57 var 58 I: Integer; 59 begin 60 for I := 0 to 500000 do 61 begin 62 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 begin 70 if CheckThreadFreed(mytd)<>1 then //判断线程是否存在 71 begin 72 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
delphi判断线程是否正在运行相关推荐
- Delphi的线程类
本文是没有写过delphi的多线程,对delphi的线程类TThread不熟悉的人而写的,主要从 TThread的源代码入手. Delphi为多线程的实现专门封装了一个TThread类来实现,我们从C ...
- Delphi Thread 线程(1)
Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到, 但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synch ...
- 判断线程是否执行完毕_关于线程池你不能不知道的东西
前言 平时接触过多线程开发的童鞋应该都或多或少了解过线程池,之前发布的<阿里巴巴 Java 手册>里也有一条: 可见线程池的重要性. 简单来说使用线程池有以下几个目的: 线程是稀缺资源,不 ...
- Delphi判断文件是否正在被使用
Delphi判断文件是否正在被使用 2010-07-06 19:48 首先,我们先来认识下CreateFile函数,它的原型如下 HANDLE CreateFile( LPCTSTR lpFileNa ...
- python 判断线程状态_Python线程指南
Python线程指南 本文介绍了Python对于线程的支持,包括"学会"多线程编程需要掌握的基础以及Python两个线程标准库的完整介绍及使用示例. 注意:本文基于Python2. ...
- 一个线程加一运算,一个线程做减一运算,多个线程同时交替运行--synchronized...
使用synchronized package com.pb.thread.demo5;/**使用synchronized* 一个线程加一运算,一个线程做减法运算,多个线程同时交替运行* * @auth ...
- winform判断线程有没有完成_并发编程系列1:线程池的架构实现、大小配置、及四种线程池使用...
△ 公众号回复关键词"架构" 即可领取<1500+BAT架构及面试专题合集> 本篇为线程池系列文章之一,不经常使用线程池的童鞋,还有对几种线程的使用不甚了解的童鞋,可以 ...
- python 判断线程状态_Python 线程和进程
前言 学编程,谁没有为线程折腾过啊. 目录 线程与进程 线程与进程是操作系统里面的术语,简单来讲,每一个应用程序都有一个自己的进程. 操作系统会为这些进程分配一些执行资源,例如内存空间等. 在进程中, ...
- python 中主线程结束 子线程还在运行么_「干货」python线程笔记
引言&动机 考虑一下这个场景,我们有10000条数据需要处理,处理每条数据需要花费1秒,但读取数据只需要0.1秒,每条数据互不干扰.该如何执行才能花费时间最短呢? 在多线程(MT)编程出现之前 ...
最新文章
- 使用Gson 解析json
- 大数据的乘法实现——C语言
- sparql查询mysql_SPARQL常用查询
- 我们做了一款无网远程运维的智能硬件,坐等运维工程师“翻牌”
- 8个JavaScript题目
- python基础教程免费视频-零基础小白python从入门到精通视频(全60集)
- logback日志框架的简单使用
- 操作系统概念第四章部分作业题答案
- UML2.0详细教程(附示例)
- C# Windows API介绍与调用
- python pdf编辑器开发_使用pymupdf开发pdf查看编辑器
- 基于KNN的垃圾邮件分类实验
- 阿里云CTO王坚当选院士,高手的人生都是如此雷同:生命的信仰
- putty、xshell小键盘无法输入
- android 字体特效,Android自定义View实现闪耀字体效果
- 首届全国智能制造(中国制造2025)创新创业大赛在京启动
- Android实现网页动态背景“五彩蛛网”
- android有什么作用,Android 7.0有什么功能 Android N完整功能参数介绍
- 【Python爬虫系列教程 41-100】猫眼电影字体加密破解
- 宝塔环境PHP网站要配置HTTPS,SSL证书如何申请
热门文章
- Delphi 与 DirectX 之 DelphiX(60): TDIB.DoTrace();
- iOS开发之注册推送通知权限
- 三分钟轻松了解Spring框架基础知识
- CentOS7的初始配置
- 栗子——自定义EditText实现右下角计数控件
- paper 108:系统学习数字图像处理之图像复原与重建
- Navsoso引领HUD抬头导航潮流
- ASM磁盘超过disk_repair_time导致磁盘状态为forcing
- [转]网络编程学习指南
- 用开源组件jcaptcha做jsp彩色验证码