微软到底实现了这个功能没有,欢迎大家来做实验
我们知道,COM的优势之一就是并发性。现在有一个问题无法解决,就是在IIS中,在同一页面范围的用VC写成的组件无法实现并发。我查了一些关于线程模式的书,都无法得到答案。一个有趣的现象时,我用VC或VB做客户端掉用组件,却能实现并发,甚至这些客户端与单独的一个Browser访问ASP,相互之间也能实现并发。
大家可以按以下的模式实施。
1、用ATL创建一个空的DLL组件,
2、添加一个Simple object,线程模式选BOTH
3、添加一个方法,Test(){ Sleep(20000);}
4、编译
5、简单起见,用VB创建客户端,
set objTest = CreateObject(。。。)
objTest.Test
生成Exe
6、将组件配置在COM+中,设置为可调,
7、运行一个VB客户端,这时将启动调试环境,在Test方法处设置断点。
现在我们同时启动两个VB客户端,可以看出,在前一个睡眠的情况下,方法被执行了
我们证明了并发
8、现在写一个ASP,
set ObjTest = Server.CreateObject(。。。)
ObjTest.test
9。访问该ASP,同时启动VB客户端,。。。。。证明并发
10、现在打开两个IE窗口,访问ASP,发现只有一个完成以后,才能调另一个
不能并发!
why,why
why,why
why,why
why,why
why,why
大家也可以来进行补充,发表你的看法
7、