社区
ATL
帖子详情
线程中引发连接点事件的问题
pfans
2008-09-25 10:00:28
我在COM的线程A中引发连接点事件,然后在客户程序该事件中看线程ID,发现和客户程序的主线程ID是一样的,这说明事件是从主线程引发的,而不是线程A引发的。为什么?
我用dephi写同样的COM,这时事件的线程ID和主线程ID是不一样的,难道VC和dephi编写的com不一样吗?
...全文
185
7
打赏
收藏
线程中引发连接点事件的问题
我在COM的线程A中引发连接点事件,然后在客户程序该事件中看线程ID,发现和客户程序的主线程ID是一样的,这说明事件是从主线程引发的,而不是线程A引发的。为什么? 我用dephi写同样的COM,这时事件的线程ID和主线程ID是不一样的,难道VC和dephi编写的com不一样吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
没有人知道吗?
警惕WPF
事件
引发
DispatcherObject跨
线程
访问
本文探讨了C#
事件
与WPF DispatcherObject结合使用时可能出现的跨
线程
访问
问题
。当
事件
由不同
线程
触发时,可能导致UI元素的非预期
线程
调用。解决方案包括在
事件
处理函数
中
添加Dispatcher检查,但可能
引发
UI卡顿。最佳实践是在
事件
注册时确保正确处理UI更新,并使用异步方法处理耗时操作。一个登录
事件
注册的案例揭示了潜在的跨
线程
访问风险。阅读作者黄腾霄的博客获取更多详细信息。
以
线程
安全方式
引发
事件
(修正)
《CLRviaC#》第三版提及
线程
安全地
引发
事件
的重要性,避免因多
线程
操作导致的NullReferenceException。通过示例代码演示
线程
竞态条件下的
事件
处理风险,及使用Interlocked.CompareExchange解决方法。
js
线程
高级:09、
线程
机制与
事件
机制(进程与
线程
、浏览器内核、定时器
引发
思考、JS是单
线程
、
事件
循环模型、Web Workers)
本文详细解析了JavaScript的单
线程
机制、浏览器内核
中
的进程与
线程
关系,结合定时器行为探讨
事件
循环模型,并通过代码示例展示Web Workers如何实现多
线程
并发。帮助开发者深入理解JS执行机制及异步编程原理。
操作系统原理,Windows
线程
调度,
引发
线程
调度的
事件
,Windows
线程
优先级,Windows时间配额,Windows
线程
调度策略,Windows优先级提升
事件
本文深入探讨了Windows操作系统
中
的
线程
调度原理,包括调度策略、
线程
优先级、时间配额及其调整,以及
引发
调度的条件。阐述了
线程
如何根据优先级和时间配额在多CPU系统
中
进行抢占式和轮转调度,并解释了
线程
优先级提升的多种情况,旨在理解Windows如何确保系统公平性和性能。
彻底理解Java内存模型,它为什么会
引发
线程
安全
问题
【吐血总结】
本文深入探讨Java内存模型(JMM),解释其与JVM内存模型的区别,分析为何需要Java内存模型,以及它如何解决多
线程
环境下数据一致性
问题
。文
中
通过生动的例子阐述了CPU缓存与内存交互的工作原理。
ATL
3,248
社区成员
48,530
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章