有关多线程的问题。 什么叫多线程?通讯中一定要调用多线程吗?请指教! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 多线称说简单点就是异步的操作;比如一个耗时的数据库操作,那么你的应用程序就STOP在这个操作上了,如果你同时还想做点别的事情,就可以用多线称了,呵呵,有点简单,说的; 在DLEPHI中使用多现成很方便的;有一个类TTHREAD;你可以使用向导来NEW一个啊; 在DELPHI中用线程排序 在数据处理量很大的情况下,如何在数据处理的同时响应用户操作?Windows95/98和WindowsNT作为多线程的多任务操作系统,其调度单元是线程,即线程是系统分配处理器时间资源的基本单元,所以我们可以利用线程实现在处理大批量数据的同时响应用户操作。 DELPHI作为一个优秀的开发平台,对开发多线程应用程序提供了强有力的支持,即可直接利用32位Windows环境提供的Win32API接口函数CreateThread,也可利用DELPHI中提供的BeginThread函数。在下面例子中,正是使用了DELPHI提供的TThread类。 一.基本的方法如下: 1.从Tthread类派生一个新类。(创建TSortThread类) 2.定义新类的Create方法。 3.定义新类的Execute方法,并在Execute方法中插入线程运行时执行的代码。 4.引用类方法创建实例。 二.例子的详细代码及说明: 首先,新建一个单元,保存为mysort.pas.在此单元中,我们创建了一个TSortThread类,它从TThread类中继承而来,所以当我们在程序中创建这个类的一个实例时,也就是创建了一个新的线程。 接着,在该类中定义一个Sort方法,用来对数组进行排序,同时TSortThread类超越了TThread类的构造方法Create和Execute,在execute方法中,调用了对数组进行排序的Sort方法。具体代码如下: unitmysort; interface usesClasses;//TThread类在Classes中被定义。 type PSortArray=TSortArray; TSortArray=array.[0..MaxIntdivSize Of(Integer)-1]ofInteger; {此处定义了TsortThread类} TSortThread=class(TThread) Private {在TSortThread类中定义了如下几个私有变元} FSortArray:PSortArray; FSize:Integer; FA,FB,FI,FJ:Integer; Protected {类TSortThread超越了类Tthread的Execute方法} procedure Execute;override; {类TsortThread添加了一个Sort方法} procedure Sort(varA:arrayofInteger); public {类TSortThread超越了类Tthread的构造方法} constructorCreate(varSortArray:arrayofInteger); end; implementation constructorTSortThread.Create(varSortArray:arrayofInteger); begin FSortArray:=@SortArray; FSize:=High(SortArray)-Low(SortArray)+1; FreeOn Terminate:=True; inheritedCreate(False); end; {当线程开始时,Execute方法将被调用。} procedure TSortThread.Execu te; begin Sort(Slice(FSortArray,FSize)); end; {下面实现了冒泡法排序} procedure TSortThread.Sort(varA:arrayofInteger); var I,J,T:Integer; begin for I:=High(A)downto Low(A) do for J:=Low(A)to High(A)-1 do if A[J]>A[J+1] then begin T:=A[J]; A[J]:=A[J+1]; A[J+1]:=T; if Terminated then Exit; end; end; end 最后,在用户应用程序的implementation处加入usesmysort,在执行排序的地方加入TQuickSortthread.Create(SortArray),其中SortArray为一实际的数组。这样就可以用线程实现排序,在排序过程中,用户不必等到排序结束就可以执行其它操作。这种用多线程实时响应用户操作方法在涉及大量数据处理的应用程序中显得尤为重要。 adoquery insert插入行后数据行到最下面了,好像没办法解决 做浏览器时如何让弹出的广告出现在浏览窗口外,就是象腾讯一样的效果? 菜鸟问题:在C/S结构中,是不是数据库都得用DBMS? 笑话 如何实现图像的放大和漫游 id控件发不了信了,它的例程也发不了? 有人知道delphi7.0的序列号么? 我要做一个透明的FORM............ 求教! 对面的大虾看过来!!GoGoGo! delphi怎样获取本机加入的域?? 急 这个sql怎么写 毕业设计要做一个教学管理系统,请问怎么样处理的成绩存储。
在数据处理量很大的情况下,如何在数据处理的同时响应用户操作?Window
s95/98和WindowsNT作为多线程的多任务操作系统,其调度单元是线程,即线程是
系统分配处理器时间资源的基本单元,所以我们可以利用线程实现在处理大批量
数据的同时响应用户操作。
DELPHI作为一个优秀的开发平台,对开发多线程应用程序提供了强有力的支
持,即可直接利用32位Windows环境提供的Win32API接口函数CreateThread,也可
利用DELPHI中提供的BeginThread函数。在下面例子中,正是使用了DELPHI提供的
TThread类。
一.基本的方法如下:
1.从Tthread类派生一个新类。(创建TSortThread类)
2.定义新类的Create方法。
3.定义新类的Execute方法,并在Execute方法中插入线程运行时执行的代码
。
4.引用类方法创建实例。
二.例子的详细代码及说明:
首先,新建一个单元,保存为mysort.pas.在此单元中,我们创建了一个TSo
rtThread类,它从TThread类中继承而来,所以当我们在程序中创建这个类的一个
实例时,也就是创建了一个新的线程。
接着,在该类中定义一个Sort方法,用来对数组进行排序,同时TSortThrea
d类超越了TThread类的构造方法Create和Execute,在execute方法中,调用了对
数组进行排序的Sort方法。具体代码如下:
unitmysort;
interface
usesClasses;//TThread类在Classes中被定义。
type
PSortArray=TSortArray;
TSortArray=array.[0..MaxIntdivSize
Of(Integer)-1]ofInteger;
{此处定义了TsortThread类}
TSortThread=class(TThread)
Private
{在TSortThread类中定义了如下几个私有变元}
FSortArray:PSortArray;
FSize:Integer;
FA,FB,FI,FJ:Integer;
Protected
{类TSortThread超越了类Tthread的Execute方法}
procedure Execute;override;
{类TsortThread添加了一个Sort方法}
procedure Sort(varA:arrayofInteger);
public
{类TSortThread超越了类Tthread的构造方法}
constructorCreate(varSortArray:arrayofInteger);
end;
implementation
constructorTSortThread.Create(varSortArray:arrayofInteger);
begin
FSortArray:=@SortArray;
FSize:=High(SortArray)-Low(SortArray)+1;
FreeOn Terminate:=True;
inheritedCreate(False);
end;
{当线程开始时,Execute方法将被调用。}
procedure TSortThread.Execu
te;
begin
Sort(Slice(FSortArray,FSize));
end;
{下面实现了冒泡法排序}
procedure TSortThread.Sort(varA:arrayofInteger);
var
I,J,T:Integer;
begin
for I:=High(A)downto Low(A) do
for J:=Low(A)to High(A)-1 do
if A[J]>A[J+1] then
begin
T:=A[J];
A[J]:=A[J+1];
A[J+1]:=T;
if Terminated then Exit;
end;
end;
end
最后,在用户应用程序的implementation处加入usesmysort,在执行排序的地
方加入TQuickSortthread.Create(SortArray),其中SortArray为一实际的数组。
这样就可以用线程实现排序,在排序过程中,用户不必等到排序结束就可以执行
其它操作。这种用多线程实时响应用户操作方法在涉及大量数据处理的应用程序
中显得尤为重要。