阿杰 发表于 2007-2-5 09:42:31

在VB中实现多线程

<strong>在Vb下实现多线程 [完全成功]</strong><div style="PADDING-RIGHT: 0px; MARGIN-TOP: 10px; FONT-SIZE: 9pt; OVERFLOW-X: hidden; WIDTH: 97%; WORD-BREAK: break-all; TEXT-INDENT: 24px; LINE-HEIGHT: normal; HEIGHT: 200px; WORD-WRAP: break-word;"><br/>新建一Module <br/>Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long <br/>Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long <br/><br/>Sub main() <br/>&nbsp;&nbsp; Load Form1 <br/>&nbsp;&nbsp; Form1.Show <br/>End Sub <br/>Public Sub c1() <br/>&nbsp;&nbsp;&nbsp;&nbsp;....... <br/>End Sub <br/><br/>Public Sub c2() <br/>&nbsp;&nbsp; ......&nbsp;&nbsp; <br/>End Sub <br/><br/>新建一窗体 <br/><br/>Private hthread1 As Long <br/>Private hthread2 As Long <br/>Private ithread1 As Long <br/>Private ithread2 As Long <br/><br/>Private Sub Command1_Click() <br/><br/>ithread1 = CreateThread(ByVal 0&amp;, ByVal 0&amp;, AddressOf c1, ByVal 0&amp;, ByVal 0&amp;, hthread1)&nbsp;&nbsp;--创建线程一 <br/>ithread2 = CreateThread(ByVal 0&amp;, ByVal 0&amp;, AddressOf c1, ByVal 0&amp;, ByVal 0&amp;, hthread1)&nbsp;&nbsp;--创建线程二 <br/><br/>CloseHandle ithread1&nbsp;&nbsp; --关闭线程一 <br/>CloseHandle ithread2&nbsp;&nbsp; --关闭线程二 <br/><br/>End Sub <br/><br/>Private Sub Form_Load() <br/><br/>End Sub&nbsp;&nbsp;<br/></div>

马大哈 发表于 2007-2-6 23:27:12

<p>使用这种方式好象不怎么稳定</p><p>记得在CSDN里看到有人说过,VB里的很多控件都不是线程安全的,只要在多线程里一使用控件,基本上都会挂.......</p>

马大哈 发表于 2007-8-31 10:54:52

<p>本来VB6就没有设计成支持多线程的....没关系</p><p>我们现在做的,是用不支持这多线程的工具去玩多线程,属于钻牛角尖罗,呵呵</p>

everyone 发表于 2008-11-3 14:16:36

<p>我觉得多线程肯定是可以的,第一官方有使用ActiveX EXE的解决方案,第二能否运行多线程在于你的系统,不是编程环境。不过VB6不支持多线程的调试,对多线程的开发不太方便。</p><p>个人太菜,还在尝试,不过见到一些像是很稳定的样例了,有待测试。</p>

马大哈 发表于 2008-12-3 12:18:13

<p>http://www.m5home.com/blog/default.asp?id=54</p><p>这个例子就比较稳定,可以测试一下.</p>
页: [1]
查看完整版本: 在VB中实现多线程