关于BCB5做MIDAS应用服务器的一个重要疑问(或者是BUG)(在DELPHI和BCB版同时贴出)
相信有不少朋友在用BCB5写应用服务器吧。。(或者仅仅是一般的自动化对象)。
不知道注意过这个问题没有:
用BCB5 (使用过企业版PACK和ADO PACK)建立一个应用服务器。线程模型选Apartment.然后使用类型库编辑器给它创建一个接口方法。。比如叫WaitSleep
{
Sleep(10000); //注意大小写。sleep()是另一个函数
}
就这样,编译运行。
然后执行多个客户端程序。不管是BCB,DELPHHI,VB写的也好,
去调用这个SLEEP方法。可以明显发现,,一个客户端的调用会阻塞
另一个客户端调用这个方法。当并发的客户端多了之后,,几乎是灾难性的。
现在,再用DELPHI6 或者DELPHI5重建一个应用服务器,同样建这样一个接口方法。
然后再试试。。各客户端互不受干扰。。
本打算用BCB5建应用服务器的,但这个问题没有解决,只得改回我以前建应用服务器
的DELPHI。
BCB和DELPHI实现应用服务器机制是不相同的。
BCB5使用的是ATL, 代码看上去让人头大,
有哪位朋友解决过这个问题吗?