• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 请问写一个DLL形式的COM是否需要考虑重入问题?

请问写一个DLL形式的COM是否需要考虑重入问题?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了请问买家具去哪里,请问有眼袋怎么办,请问家具品牌,请问430是不锈钢吗,请问您今天要来点兔子等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 请问写一个DLL形式的COM是否需要考虑重入问题?
描述:

我写一个DLL形式的AutomationObject
被HTM文件中VB代码调用,有可能同时打开几个这类网页而导致同时有几个来自VB代码的访问请求
想问一下
在对外公开的函数中是否需要自己处理函数重入问题?


解决方案1:

这取决于你的组件的线程模型。如果你采用的是STA(Apartment,一般组件,尤其是VB组件都是采用这种模型),那么组件实例中的变量,不用考虑重用,但是组件中的全局变量,必须加以同步保护措施以防止并发冲突。
具体来说,如果你用ATL开发组件,那么组件类的成员变量(不包括静态变量)不需要考虑同步保护,而整个工程的全局变量必须加以同步保护。
一般地,不同线程的客户生成的STA组件运行于各自的线程中,所以不存在重入问题。如果线程A生成STA组件,然后把组件的指针传给线程B,则线程B调用组件时,请求是排队在线程A中的,并且发生线程切换。
在ASP中,最好不要把组件指针存在Application、Session等变量中,这会造成线程切换,极大地影响性能,并且还可能造成不可预知的错误。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 急救:请问怎样可以用鼠标获取IE中frame里的图片
  • 请问注册dll时,注册表中的?表示什么?
  • 请问如何用代码改变EXCEL某一单元格的颜色?
  • 请问如何在Word中插入图片?
  • 请问有人知道在vc里面如何实现vb的集合对象
  • 请问,怎样才能用c实现com?在很多书上都是用c++。
  • 请问如何获取本机IIS所有网站的本地路径?
  • 请问能在不关闭网页的情况下卸载ATL控件吗?
  • 请问哪里有嵌入IE后性能较好的树控件?
  • 请问在VC下如何修改IE控件的背景颜色?

相关文章

  • 2017-06-04 进程之间大数据量传递的内存问题
  • 2017-06-05 请问如何hookcom接口函数呢
  • 2017-06-05 版权信息编译之后乱码,如何解决?
  • 2017-06-04 如何判断wma文件的格式是否正确
  • 2017-06-04 COM定义接口,如何传递COLEVariant类型的参数?
  • 2017-06-05 请教多线程中对GDI操作的问题,在多线程中调用SetWindowText出错
  • 2017-06-05 线程函数提问
  • 2017-06-04 请教网页上的Activex怎么不能用?
  • 2017-06-05 web窗口无法获取焦点
  • 2017-06-05 ###求端口与进程映射的源码###

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 在做基于wince的串口通信,棘手了!请大侠帮忙!
    • journalhook的问题adevelopersguide
    • 关于MSCOMM控件的问题
    • 如何保证程序顺序执行?(最好不要用线程)
    • 请教一个使用ATL控件调用的方案,还会在加分!
    • 急!如何给ActiveX控件添加一个能输出数组的方法?
    • 问一个关于ocx,com注册的问题。(想绿化软件,不用注册)
    • 请问动态库、静态库分别是什么,两者有什么区别没有
    • CreateMutex用于防止同一程序的多实例运行求教
    • 关于控件的驱动

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有