写了个模块,需要把它封装在COM组件里(流程是建立一个ActiveX Library->COM object)现在遇到的问题是,
执行Synchronize方法来显示界面消息时,线程会挂起
线程结束后没有触发OnTerminate事件,
不知道这两个问题该如何解决?
望大虾们帮帮忙,谢谢。因为程序里用了很多这些方法,所以改变机制比较麻烦,最好能不改这些程序。
当然实在不行就只能改了。
执行Synchronize方法来显示界面消息时,线程会挂起
线程结束后没有触发OnTerminate事件,
不知道这两个问题该如何解决?
望大虾们帮帮忙,谢谢。因为程序里用了很多这些方法,所以改变机制比较麻烦,最好能不改这些程序。
当然实在不行就只能改了。
在COM组件中随意起一个线程。
这个线程执行中调用Synchronize方法,大家跟一下就知道了,调用完Synchronize线程会挂起。
线程结束后不能执行OnTerminate事件。我感觉应该是COM组件和TThread之间兼容的问题。
----------------------
to comerliang(天地良心):
我们其实只是用COM组件来打包一个模块,便于别人的使用和管理。
并不一定需要在Web中使用。比如我现在写的这个就不是在web中用的。
----------------------
以前我用CB开发过OCX,发现VCL和ActiveX之间的融合还存在很多的问题。
COM组件也是一样。总之开发基于ActiveX的东东,个人感觉用VCL还是
比较容易出问题(感觉CB的问题比Delphi还要多些),
最好还是拿VC来写
其实最底层的东西应该还是ATL,这点没有仔细研究过,以前听一个师兄这样说过。
----------------------