基于Delphi多线程局域网IP信息采集的实现.pdf
文本预览下载声明
第29卷第4期 长春师范学院学报(自然科学版) 2010年8月
v01.29No.4 of Normal
Joumal Univemity{NaturalScience) Aug.2010
Changchun
基于Delphi多线程局域网IP信息采集的实现
冉彦中,许志军,曹婧华
(吉林大学和平校区计算机系,吉林长春 130062)
[摘要】本文介绍了多线程的优点以及Delphi的1TIt北ad类,以及编写多线程应用程序的一般步骤和
多线程P信息采集的实现代码。
[关键词】Ddphi;多线程;Tllaread类;局域网
【中图分类号】TP393 【文献标识码】A 【文章编号】1008一178x(20lO)04—0036—03
O引言
域网信息时耗时多达2分多钟,让人无法忍受,于是想到了Delphi的’兀h删类,采用多线程编写应用程序。
单线程应用程序在进行比较慢的操作如磁盘读写时,CPU必须停下来等待,直到该操作执行完毕,而多线程
应用程序则可以在一个线程进行磁盘读写时,继续执行另一个单独的线程;通常一个程序的行为可以组织成
几个功能相互独立的平行的处理过程。将这些独立的处理组织成单独的几个线程,就可以同时启动这几个处
理过程。还可以使用线程的优先级来控制哪些任务获得更多的CPU时间,大大提高了程序的运行效率。
l Delphi的Tthread对象
直接使用Windows
用户提供了一个抽象类,11hread,它将WindowsAPI函数中关于多线程方面的函数封装在一起,可以方便、安
全地编写多线程应用程序。
编写多线程应用程序的一般过程:
Trhread类是一个抽象类,不能直接创建对象,只能创建它的派生类并使用派生类的对象,编写多线程
应用程序的一般步骤为:
(1)从Trhread类派生出一个新的线程类;
(2)创建线程对象;
(3)设置线程对象的属性(如优先级等);
(4)根据具体情况挂起或唤醒线程;
(5)结束线程。
Tthread对象的主要方法为,构造线程:
constructor
Create(CreateSuspended:boolean)
或者inheried
Cream(CreateSuspended:boolean)
构造但不唤醒
其中:CreateSuspended=true
false构造的同时即唤醒
【收稿日期】2010—03—18
【作者简介】冉彦中(1969一),男,重庆万洲人,吉林大学和平校区计算机系教师,硕士,从事嵌入式系统及软件开发研究。
·36·
万方数据
(把线程挂起的次数加一)
挂起线程:suspend
唤醒线程:resume(把线程挂起的次数减一,当次数为0时,即唤醒)
析构(清除线程所占用的内存):destroy
终止线程:Terminate
2多线程口采集代码
TComread=class(TIhread)//8,1建通讯线程
private
public
Tagg:integer;
protected
Execute;override;
procedure
end;
{始化SOCKET}
ProcedureWinSockInital(Handle:HWnd);
{关闭SOCKET}
Procedure
WinSockClose();
eonst //发送网络数据包
NbtstatPacket:array[0..49]ofbyte
$0,$1);
Tcomr:=,I℃0m陀ad.
显示全部