线程我是用API的方式创建的,现在我想通过判断这个线程的状态来确定按钮的单击事件是执行‘挂起’还是‘唤醒’的操作
hThread:=CreateThread(nil,0,@MyThreadFun,nil,CREATE_SUSPENDED,ID);
hThread:=CreateThread(nil,0,@MyThreadFun,nil,CREATE_SUSPENDED,ID);
解决方案 »
- 谁推荐个邮件客户端程序源码学习下,顺便散分
- 一个系统安装目录有这样的文件,DeIsL3.isu _DEISREG.ISR svobj.dll此系统是不是用Delphi开发的?
- 今天编译程序时出了一个未知的错误:Internal error: URW3959
- 如何在程序中修改打印机设置?
- delphi双击程序打开窗体之前打开网址怎么实现
- “屏幕取词”技术问题?!
- 在DELPHI中,我怎样用两个字符去替换一字符串中的任意相邻的两个字符?
- SQL Server 2000 安装问题[急]
- StringGrid控件如何加上checkbox,button???最好给代码!!!!
- 请教 大虾!怎样刷新任务栏右边的系统托盘
- 求帮助,在线急等!!!!!!
- 哪位大侠能给我一份根据机器码算注册码的源码?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Memo1: TMemo;
Button2: TButton;
Button3: TButton;
procedure FormDestroy(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
mThread: Cardinal;
mCount: integer;
mTag: integer;implementation{$R *.dfm}function MyThreadFun(p: pointer): Integer; stdcall;
begin
while true do
begin
Inc(mCount);
Form1.Memo1.Lines.Add('running' + IntToStr(mCount));
sleep(1000);
end;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
TerminateThread(mThread,0);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
if mTag>0 then
begin
ResumeThread(mThread);
Dec(mTag);
end;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
if mTag=0 then
begin
SuspendThread(mThread);
Memo1.Lines.Add('Suspend');
Inc(mTag);
end;
end;procedure TForm1.FormCreate(Sender: TObject);
var
id: dword;
begin
mCount := 0;
mThread := CreateThread(nil,0,@MyThreadFun,nil,CREATE_SUSPENDED,ID);
mTag := 1;
end;end.