文档详情

基于Delphi多线程局域网IP信息采集的实现.pdf

发布:2017-09-24约字共3页下载文档
文本预览下载声明
第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.
显示全部
相似文档