(看的时候多,第一次提问,错误之处望指点)从两层数据开发学习转向分布式开发,被RDM中的套间问题弄糊涂了(书也查阅了不少,越看越糊涂),以个人理解举一例:建立一RDM(定为myserver),加入一函数myfun
type
  Tmyserver = class(TRemoteDataModule, Imyserver)
  private
    { Private declarations }
  protected
    class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
    function myfun(var vin: OleVariant): OleVariant; safecall;
  public
    { Public declarations }
  end;implementation
.
.
.
function Tmyserver.myfun(var vin: OleVariant): OleVariant;
begin
  Result:=vin+1;
end;问题:
   1,若是创建RDM时Threading model为Apartment,个人理解,N个客户端调用myfun时是依次产生N个独立线程,依次独立执行,即第一个客户端传入2返回3,第二个客户端传入99返回100,第N个客户端传入24返回25,在编程时不需考虑同步及协调问题,第一个客户端传入的2不会影响到第二个客户端,即第二个客户端中的99不会被2和24(第N个客户端的传入数据)影响。不知理解的对不对?
   2,若是创建RDM时Threading model为Free或Both时,个人理解,N个客户端调用myfun时是同时产生N个独立线程,同步执行,因Free或Both是同步执行,若不进行协调及调度,第一个客户端传入的数据2会影响到第二个客户端,即第二个客户端可能得到的传入数据是2,同理,返回值也因未进行协调及调度可能第一个客户端返回是100,第二个客户端返回的是25,第三个客户端返回的是3。疑问:若确实如此,应如何进行同步协调?很多参考书说的用Free或Both应对全局或局部变量进行保护不知是不是这个意思(但参考书对如何保护却只言未提),如何正确保护及协调从而保证各客户端传入及返回值正确?先谢过了!(最后问下:标记问题分数100及结贴给分应如何操作?)