在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
关于线程的原理:其实并没有真正的多线程,所谓的多线程只不过是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 begin CoInitializeEx(nil, COINIT_APARTMENTTHREADED); end; //对结果进行操作 procedure TmapQueryThread.BeginView; begin showmessage(AreaName);//areaName为查询的返回结果,可以自行操作 end;
------------------线各线束,在程序中实现应用该线程 procedure TFrom1.Btn1_Cliek(Sender: TObject); begin TmapQueryThread mapQueryThread:=TmapQueryThread.Create('123456',158746111,1200000);//线程实例化 end; 以上只是在项目中应用的一个小小的线程实例,可能存在一些小剖疏忽,
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论