博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我学Delphi心得与笔记-------多线程实例
阅读量:6264 次
发布时间:2019-06-22

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

关于线程的原理:其实并没有真正的多线程,所谓的多线程只不过是CPU的执行效率高,将任务分成多个点,基本能达到同时执行的效果.

关于Delphi下的多线程的应用需要说明的是:同时开启的线程数以及线程执行的方法都会影响cpu的执行效率,一般的情况下,能不用线程就不要用;下面写一个Delphi的多线和应用的例子:

----------------------------多线程的申明

type

  TmapQueryThread=class;

  TmapQueryThread=class(TThread)

  private

    vehicleId:string;

    Lon:integer;

    Lat:integer;

    AreaName:string;

  public

    constructor Create(vid:string;slon,slat:integer);

 protected

    procedure Execute;override

    procedure GetAreaName;

    procedure BeginView;

end;

-----------------------------------多线程的实现

constructor  TmapQueryThread.Create(vid:string;slon,slat:integer);

begin

  inherited Create(False);

  vehicleId := vid;

  Lon:= slon;

  Lat:=slat;

  AreaName := '';

end;

procedure  TmapQueryThread.Execute;

begin

  inherited;

  GetAreaName;

  if not Terminated then

  begin

    Synchronize(BeginView);

  end;

end;

//根据经纬度获取网络51地图的地址

procedure TmapQueryThread. GetAreaName;

var

  ;
  node:IxmlNode;
  xmldocm:TxmlDocument;

begin

  CoInitializeEx(nil, COINIT_APARTMENTTHREADED);

  Url := 'http://rgc.vip.51ditu.com/rgc?pos='+ FloatToStr(slon)+','+FloatToStr(slat)+'&type=1';
  try
    xmldocm := TXMLDocument.Create(Application);
    xmldocm.LoadFromFile(Url);
    node := xmldocm.DocumentElement.ChildNodes[1].ChildNodes[0];
    AreaName := SubStr(node.Text);
  except
    AreaName := '网络地址获取错误,请重试';
  end;
  xmldocm.Free;
  CoUninitialize;  

end;

//对结果进行操作

procedure TmapQueryThread.BeginView;

begin

  showmessage(AreaName);//areaName为查询的返回结果,可以自行操作

end;

 

------------------线各线束,在程序中实现应用该线程

procedure TFrom1.Btn1_Cliek(Sender: TObject);

begin

  TmapQueryThread

  mapQueryThread:=TmapQueryThread.Create('123456',158746111,1200000);//线程实例化

end;

 以上只是在项目中应用的一个小小的线程实例,可能存在一些小剖疏忽,

 

转载于:https://www.cnblogs.com/youshan/archive/2012/02/15/2352938.html

你可能感兴趣的文章
Python27中Json对中文的处理
查看>>
结构,是指事物自身各种要素之间的相互关联和相互作用的方式
查看>>
andoid电阻触摸移植
查看>>
备忘录模式
查看>>
U盘安装CentOS 7卡住在 mounting configuration file system
查看>>
《Java设计模式》之装饰模式
查看>>
android开发使用SQLite之写日记
查看>>
[生活] 日常英语学习笔记-NEVER HAVE I EVER游戏
查看>>
uva103 - Stacking Boxes(DAG)
查看>>
ACdream 1127(Base Station-树状数组-2个约束条件)
查看>>
【LFM】隐语义模型
查看>>
普通SQL语句可以用Exec执行
查看>>
Python提取MD5
查看>>
開始EEPlat之旅
查看>>
BootStrap 专题
查看>>
linux 下同步异步,堵塞非堵塞的一些想法
查看>>
原子变量的性能问题
查看>>
HDU4638:Group(线段树离线处理)
查看>>
Jenkins构建触发器
查看>>
COCOS学习笔记--即时动作ActionInstant
查看>>