windows – 如何使COM对象的方法不在主线程中运行
发布时间:2020-12-14 05:39:45 所属栏目:Windows 来源:网络整理
导读:我有一个实现COM本地服务器的 Windows服务. 当作为应用程序运行时,COM对象方法在一个单独的(不在主)线程中调用,这很好.当作为服务运行时,事情会发生变化 – 然后在服务线程的上下文中调用COM对象方法,这对我来说并不酷. 我看到它与公寓,MTA,STA等有关..但我
我有一个实现COM本地服务器的
Windows服务.
当作为应用程序运行时,COM对象方法在一个单独的(不在主)线程中调用,这很好.当作为服务运行时,事情会发生变化 – 然后在服务线程的上下文中调用COM对象方法,这对我来说并不酷. 我看到它与公寓,MTA,STA等有关..但我无法弄清楚如何强制COM在单独的线程中而不是在服务中调用我的对象方法. 可能这与在服务启动时注册com对象有关吗? 我的环境是windows 7 delphi,但欢迎使用c解决方案. 更新2011-04-26: 由于它是STA,因此app依赖于消息泵来将COM消息传递给注册coclass的线程.我将coclasses的注册重新定位到具有消息循环的单独线程中,并且现在在该线程中执行所有com调用.之前我曾尝试过这种方法,但忘记了消息循环,所以这是拼图的缺失部分.多谢你们! 解决方法
将在您注册的任何线程上调用这些对象.如果您希望在单独的公寓(STA)中调用对象,则必须从该公寓注册类对象.这可以通过创建一个单独的线程并从那里注册来完成.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-7 – 如何在Windows 7上设置LDAP服务器?
- windows-server-2008 – IIS FTP服务器在本地工作,但无法从
- windows-7 – 在没有重定向网关的情况下替换Openvpn客户端上
- windows-server-2003 – 如何在Windows Server 2003上使用N
- active-directory – 是否可以授予域控制器上所有事件日志的
- windows – 从域工作站远程卸载软件
- windows-server-2012-r2 – 无法访问远程桌面服务 – 服务器
- Windows Phone 8.1中ListView中行的交替颜色
- 在windows服务器开启php的gd库phpinfo中未发现
- 在nest.dll 2.1.1上找不到ElasticType和ElasticProperty属性
推荐文章
站长推荐
热点阅读