多线程调用进程外COM组件

时间:2021-09-16 20:14:46
  MFC中,点击RUN按钮,创建多线程,调用进程外COM组件(exe后缀),采用单件模式连接组件。直接点击“X”关闭时,为了不残留COM组件运行,在OnClose中添加了卸载COM组件和关闭线程的工作(在OnClose中结束线程,我用的TerminateThread,有什么更好的函数建议么?)。
  问题:怎么协调线程关闭和卸载COM组件的操作?
  现象:直接在线程运行过程之前,点击“X”关闭时,没有任何错误,程序正常关闭。点击“RUN”按钮,线程运行中,点击“X”关闭时,弹出错误:abnormal program temination。
  求牛人解答~

2 个解决方案

#1


 问题:怎么协调线程关闭和卸载COM组件的操作?
组件引用为0的时候会自动卸载的

#2


直接TerminateThread的方法是不好的。最好让线程以返回值的形式退出。

可以使用循环+事件的方式,通知线程何时该结束

#1


 问题:怎么协调线程关闭和卸载COM组件的操作?
组件引用为0的时候会自动卸载的

#2


直接TerminateThread的方法是不好的。最好让线程以返回值的形式退出。

可以使用循环+事件的方式,通知线程何时该结束