COM的线程模型有
Single Thread
Apartment (Single-Threaded Apartment, STA)
Free (Multi-Threaded Apartment, MTA)
Both
Windows 下有Neutral、Rental两种
现在如果我开发了一个组件,声明其为Apartment型的,希望以此来提高客户的响应时间(在多个用户连接时)。但是我所创建的组件需要在不同的Apartment中才能同时响应客户的请求,否则只能进行排队等候。
现在的问题是:如何控制创建的组件所在的Apartment,不能实现使用Apartment的预定效果。
请各位指教。另外:
COM对象具体的体现是什么?
即Delphi如何自己创建一个COM对象,如何自己定义一个COM对象。这些问题虽然有一点的了解,但总感觉不够清晰,因此提出问题。
Single Thread
Apartment (Single-Threaded Apartment, STA)
Free (Multi-Threaded Apartment, MTA)
Both
Windows 下有Neutral、Rental两种
现在如果我开发了一个组件,声明其为Apartment型的,希望以此来提高客户的响应时间(在多个用户连接时)。但是我所创建的组件需要在不同的Apartment中才能同时响应客户的请求,否则只能进行排队等候。
现在的问题是:如何控制创建的组件所在的Apartment,不能实现使用Apartment的预定效果。
请各位指教。另外:
COM对象具体的体现是什么?
即Delphi如何自己创建一个COM对象,如何自己定义一个COM对象。这些问题虽然有一点的了解,但总感觉不够清晰,因此提出问题。
解决方案 »
- 怎样再次启动已经执行完的线程?
- 编号与编称的问题
- SQL SERVER建表时出现的怪现象
- 如何关联chm的帮助条目
- 哪里有类似于SQL server 客户端工具企业管理器这样的软件 来替代企业管理器
- 如何对多表连接查出的DBGRID的记录复选删除?
- 需求Asyc profasional控件,提供下载地址也行!!!
- 菜鸟提问:请问如下一个简单的c的struct如何翻译成object pascal语言?
- dbgrid问题?
- 前天程序编译运行都好的,今天却出现exception eAccessViolation的错误,请高手帮忙,50分奉送。
- 如何获得QQ“好友”面板中的好友列表,每个图标的位置?
- 如何在quickReport中显示数据库中的jpg图片?
一个客户端调用某一方法时需要5秒(仅产生一个5秒的延迟,并没有等待数据库锁等情况),当多个客户端同时调用时,理想的状态是 5秒 + 一个很小的时间.但时间上最后一个客户端调用完毕时,它所消耗的时间时 N*5 秒(N为客户端的数目).按照Apartment的想法,可以创建多个apartment来提高响应速度,提高并发性,这样最后一个返回的客户端所消耗的时间将极大地减少.问题是,我不知道如何创建对象在不同的apartment中.(问题和上面的描述中对"组件"\"对象"并不严格区分,原因是很多地方他们具有多种含义,另一方面,是我不是非常清楚地他们所具有的多种含义)
对于Apartment模式,表示某一时刻只能被一个客户端线程进行访问
更确切地说是 一个Apartment中的对象只能被一个客户端线程进行访问, 但COM服务器可以同时有多个Apartment.
在COM服务器中只有一个APARTMENT时与 Single Thread服务器是一样的, 某一时刻只能被一个客户端线程进行访问我所说的COM对象的具体表现 是 com服务器所提供的一个接口。