社区
ATL
帖子详情
线程中引发连接点事件的问题
pfans
2008-09-25 10:00:28
我在COM的线程A中引发连接点事件,然后在客户程序该事件中看线程ID,发现和客户程序的主线程ID是一样的,这说明事件是从主线程引发的,而不是线程A引发的。为什么?
我用dephi写同样的COM,这时事件的线程ID和主线程ID是不一样的,难道VC和dephi编写的com不一样吗?
...全文
158
7
打赏
收藏
线程中引发连接点事件的问题
我在COM的线程A中引发连接点事件,然后在客户程序该事件中看线程ID,发现和客户程序的主线程ID是一样的,这说明事件是从主线程引发的,而不是线程A引发的。为什么? 我用dephi写同样的COM,这时事件的线程ID和主线程ID是不一样的,难道VC和dephi编写的com不一样吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
UDX协议
2008-10-22
打赏
举报
回复
http://support.microsoft.com/kb/280512
yjgx007
2008-10-22
打赏
举报
回复
子线程只是负责创建连接点, 消息响应函数是在主线程中.
hbuzzd
2008-10-20
打赏
举报
回复
连接点的Fire事件本来就应该由服务端的主线程来引发。即便是你在子线程中调用了连接点事件,其实最主要的是你还必须把主线程this传递给子线程。
同时Fire事件此时还是不能通过编译,还必须修改FireEvent处的代码。class CProxy_IGuidanceEvents : public IConnectionPointImplMT
IConnectionPointImplMT是微软后来增加的专门处理多线程环境下调用连接点函数的相关处理。
jameshooo
2008-09-25
打赏
举报
回复
在哪个线程中Advise连接点,就在哪个线程中接收到事件。
蒋晟
2008-09-25
打赏
举报
回复
ATL的代码不是线程安全的
yxz_lp
2008-09-25
打赏
举报
回复
不知你代码是如何写的,你是把激发线程的ID传入事件源函数还是事件处理函数里获得线程ID,如果是后者,我认为应该是对的
,因为com组件里保存的是事件源接口的指针,而真正的事件源接口实例,是由客户端创建的,而com组件只不过是激发事件源调用它的方法,也就是说该方法是在创建事件源接口实例的线程中运行。(当然还要看是不是进程内组件)
dephi就不知道了。
pfans
2008-09-25
打赏
举报
回复
没有人知道吗?
ATL
连接点
事件
(ConnectionPoint)
1.
连接点
为出接口([out]属性),当控件执行到某个时刻,需要通知控件外部对象, 可用到
连接点
, 作用有点类似回调函数.如嵌入到网页里的插件, 需要通知网页某些信息时, 可采用
连接点
事件
, 网页端则用javacript或vbscript来响应. 当ATL
中
有
连接点
事件
, 名为CPEvent, 网页部分如下定义即可响应:SUB AtlComId_CPEvent msgbo
【Python SQLAlchemy】数据库连接池SQLAlchemy
中
多
线程
安全的
问题
提问 最近把原来的单
线程
改为多
线程
,从而引起了sqlalchemy的错误。 我自己简单封装了 一个sqlalchemy类,用来进行各种数据库操作。 自从改为多
线程
后,
线程
一多,在更新数据的时候就会出错。 我自己封装的sqlalchemy,是共用一个 Session的 def __init__(): Session = sessionmaker(bind=self.engine) self.sess...
多
线程
可能带来的
问题
多
线程
可能带来的
问题
1 内存泄漏1.1 Java程序
中
容易发生内存泄露的场景1.2 解决内存泄漏
问题
:内存溢出和内存泄漏的区别?
问题
:ThreadLocal 内存泄露
问题
了解不?1.3 Java
中
的几种引用方式2 上下文切换3 死锁3.1 产⽣死锁的四个必要条件3.2 如何避免
线程
死锁 并发编程的⽬的就是为了能提⾼程序的执⾏效率提⾼程序运⾏速度,但是并发编程并不总是能提 ⾼程序运⾏速度的,⽽且并发编程可能会遇到很多
问题
,⽐如:内存泄漏、上下⽂切换、死锁 。 1 内存泄漏 在Java
中
,内存泄漏就是存在一些被
易语言多
线程
网络编程实战:
事件
驱动与
线程
管理
在计算机科学
中
,多
线程
是一种程序设计方法,用于并行执行多个
线程
以提高性能。易语言作为一种高级编程语言,提供了丰富的多
线程
支持,使得开发者能够更加简单地实现复杂的并发逻辑。本章将对易语言
中
的多
线程
概念进行基础介绍,涵盖
线程
的定义、特点和易语言
中
实现多
线程
的语法。网络协议是一套规则和约定,允许网络上的设备进行通信。协议定义了数据如何打包、寻址、传输、接收和解释。以TCP/IP协议为例,TCP提供面向连接的、可靠的数据传输服务,而IP负责将数据包从源传送到目标。创建
线程
是多
线程
编程
中
最基础的操作之一。
难懂,误点!将多
线程
技术应用于Python的异步
事件
循环
为了避免这种情况,并让所有工作
线程
共享同一个
事件
循环,我编写了一个自定义策略(实际上就是创建
事件
循环的机制),它允许我重用现有的
事件
循环。与可能会
中
断任务的操作系统不同,Python的
事件
循环不会主动
中
断任务,而是等待任务通过使用await语句自愿交出控制权,或者自行完成。在这个堆
中
,任务会根据时间戳进行排序,确保堆顶的任务总是下一个即将就绪的任务。这样,当队列为空时,工作
线程
可以等待(即阻塞)。值得注意的是,在Python
中
,每个
线程
都拥有自己的独立
事件
循环,这一点在设计多
线程
异步方案时必须考虑。
ATL
3,248
社区成员
48,529
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章