三层结构多线程模型如何实现?(150分)

  • 主题发起人 主题发起人 xiecc
  • 开始时间 开始时间
X

xiecc

Unregistered / Unconfirmed
GUEST, unregistred user!
看了李维Delphi 5.X系统篇里面的线程模型,
但书里对ApartmentThread如何实现没有一个完整的例子
本人资质愚鲁,不知哪位大侠能详细说明一下或给个例子
 
其实那本书的线程都是Apartment,配套的光盘上有相关的例子
 
但是书里应用程序服务器都只建立一个Apartment线程,也就是说它一次仍然只能服务一
个客端。
而只有第六章讲到建立多线程的客户端和应用服务器,可偏偏没有完整的例子
 
高手们都跑哪儿去了?
 
李唯没有提供marshaling的例子,不知他是否避重就轻
 
你在建立应用服务器时就选择线程模型了啊!
至于访问数据时就自己搞定啦!
 
建一个Serve,instance=multiple instancing,threading mode=apartment
定义全局变量
var i:integer;
在remote data module的onCreate里
inc(i);
form1.label1.caption:=inttostr(i);
//form1为server的主窗口
当有多个客户时,看看lableb你就明白
 
建一个Serve,instance=multiple instancing,threading mode=apartment
定义全局变量
var i:integer;
在remote data module的onCreate里
inc(i);
form1.label1.caption:=inttostr(i);
//form1为server的主窗口
当有多个客户时,看看lableb你就明白
 
我有InstallShield for delphi5的,要不要?
英文版,3.65M
 
ApartmentThread不是要你去实现的,它由COM机制自动实现。
你可参考MICROSOFT的《INSIDE COM/COM+》一书。
 
delphi5 have implement the apartment thread mode.You needn't implement it
yourself.delphi 4do
n't implement it.
 
其实利用Delphi 来编写 3-Tier multi_thread 是非常方便的
但是有两点需特别注意:
1.如果使用的版本为 Delphi 5.0 只需要将 Threading Model设为 Apartment,
就可实现。
2.但是在 Delphi 4.0 下就需要自行创建 Multi-thread,不过在其 Demos Source
有个 thrddcf.pas。您只要在 (Remote Data module) use 它
并把
TComponentFactory.Create(ComServer, TRDM,Class_RDM, ciMultiInstance, tmApartment);
--- ------(RDM Class name)
这一段改为
initialization
TThreadedClassFactory.Create(ComServer, TRDM,Class_RDM, ciMultiInstance, tmApartment);
 
癘岿?莱赣琌
TThreadedAutoObjectFactory.Create(ComServer, TRDM, CLASS_RDM, ciMultiInstance, tmApartment);
 
记错了应该是
TThreadedAutoObjectFactory.Create(ComServer, TRDM, CLASS_RDM, ciMultiInstance, tmApartment);

 
多人接受答案了。
 
后退
顶部