PostThreadMessage 顾名思议,向线程中发送消息.下面讲讲我在线程中的应用体会
在Delphi 中,我们大多数人,使用线程的时候,都会用到系统自带的TThread 类,来完成线程的操作。
从TThread 中派生出一个自己的类,然后重载 Execute 函数,其在TThread中被定义成了抽象类(纯虚类C++)。
子类必须重载这个函数.在此函数中,写入你要完成的任务代码. 例如 最简单应用
TCustXXXXThread=class(TThread)
public
procedure Execute();override;
end;
TCustXXXXThread.Execute()
begin
while (not Terminated) do
begin
//do something
end;
//退出后,线程结束
end;
一个线程要完成一项(多项)任务,就涉及到一个最基本也是不可回避的问题,怎样与线程进行通信,把输入参数传递给线程
把线程的运行结果,取出来。实现的方法很多,今天这里重点介绍下。
我的一个软件模块中,需要做数据采集, 把某网站上的数据采集下来。然后,分解提取出需要的数据,整理后,存入数据库
以便于后续处理。网络通信采用了 Indy控件,负责下载网页文本。由于数据量比较大,网站的数据是分页的。我这里也要循环
读取每个网页的文本。数据下载,分解都是耗时操作。很自然的就
在Delphi 中,我们大多数人,使用线程的时候,都会用到系统自带的TThread 类,来完成线程的操作。
从TThread 中派生出一个自己的类,然后重载 Execute 函数,其在TThread中被定义成了抽象类(纯虚类C++)。
子类必须重载这个函数.在此函数中,写入你要完成的任务代码. 例如 最简单应用
TCustXXXXThread=class(TThread)
public
procedure Execute();override;
end;
TCustXXXXThread.Execute()
begin
while (not Terminated) do
begin
//do something
end;
//退出后,线程结束
end;
一个线程要完成一项(多项)任务,就涉及到一个最基本也是不可回避的问题,怎样与线程进行通信,把输入参数传递给线程
把线程的运行结果,取出来。实现的方法很多,今天这里重点介绍下。
我的一个软件模块中,需要做数据采集, 把某网站上的数据采集下来。然后,分解提取出需要的数据,整理后,存入数据库
以便于后续处理。网络通信采用了 Indy控件,负责下载网页文本。由于数据量比较大,网站的数据是分页的。我这里也要循环
读取每个网页的文本。数据下载,分解都是耗时操作。很自然的就