我在边VB多线程时遇到这样一个问题,希望各位高手能帮手解决!小弟感激不尽!
      在调试环境当中,运行一个程序,启动2个线程,但是,我终止这2个线程(利用TerminateCurrentThread)后,再关闭整个程序(再调用TerminateCurrentThread一次),这时候,程序不能停止,不能回到开发环境。只能利用任务管理器终止整个vb,才能解决。
      各位高手,能告诉我是什么原因吗?

解决方案 »

  1.   

    关闭整个程序非要调用TerminateCurrentThresd么?
      

  2.   

    VB6.0及其以前的版本中,较少涉及到多线程的问题。这是因为VB并不是线程安全的,多线程模式的工作原理和编程机制对于VB并不完全适合。在VB6.0的应用中,我们可以通过Win32 CreateThread API来创建一个多线程的应用,或者通过欺骗COM库而在一个独立的线程中创建一个组件,不过这些技术都是难以调试和维护的
    不建议使用vb开发多线程程序,如果一定要用vb开发多线程程序的话,建议创建一个进程外的ActiveX服务器,并使用ActiveX的自动控制功能来为它工作。可以参考:
    http://www.usbad.net/jswz/%B6%E0%CF%DF%B3%CC%BC%BC%CA%F5%D4%DAVB%205%D6%D0%B5%C4%D3%A6%D3%C3.htm
      

  3.   

    强烈建议不要使用多线程,好多高手都这么说,估计他们也是吃过苦头的人。vb6虽然比vb5对多线程支持好 一点,但是vb自身的缺陷注定它无法更好的支持多线程。可以使用.net或者别的语言来实现