Active Exe设置为每个对象一个线程(无窗体ActiveExe)。VB主程序中通过CreateObject创建这个Active Exe组件。
(其实设置不设置都是运行两个Exe程序了,进程中是两上Exe文件,线程是多少我也不管他,反正这
也是一种假多线程。)当Active Exe在进行长时间的运算时,如导向数据库中插入一万条记录。 VB主程序也不能动了。
如果点一下主程序窗口标题栏或窗体里面的控件(如按钮,文本框)则会弹出一个警告窗体,大致意思为: 因为另一个应用实例正忙,你的操作被略过, 点击“切换为。。”转至正忙的进程,点取“重试”重复当操作,还有个取消按钮是无效的。 这样提示好像就不太像多线程程序啊。 如果取消这个窗体,如何在进行长时间无回应程序仍能拖动标题栏或点击取消按钮。。比如说我一个AdoConnection.Execute .....语句,就可以执得两分钟,这两分钟内程序的窗体都是无回应状态。要直到执行完毕时才可以回应用户操作。当然这不是多个语句,不能用DoEvents来解决,如果是多个语句Doevents就可以解决。 一个语句可能就要用多线程,但我从来没成功过,都说VB编辑器不支持多线程,我编译成Exe也还是不行,要命!!,现在写多线程我都不得不用Delphi,很不方便。