Simply say, AddressOf doesn't behave properly in VB6. It is really lucky you didn't get a GPF when you trying to use multi-thread with CreateThread function. In other word CreateThread DOESN'T work. 
    You may try to use Apartment thread in vb6 that is a good or say stable way to use multi-thread in vb. 
<END>    
CreateThread API ¶¨ Òå Îª £º 
     Public Declare Function CreateThread Lib "kernel32" _ 
     (lpThreadAttributes As Long, ByVal dwStackSize As Long, _ 
     byval lpStartAddress As Long, lpParameter As Any, ByVal _ 
     dwCreationFlags As Long, lpThreadId As Long) As Long 
     Public vbbl As Boolean 
    ¾Í ¿É ÒÔ ÁË £¡ 
<END>    
º¯ Êý Éù Ã÷ Îª £º 
    Declare Function CreateThread Lib "kernel32" (ByVal lpSecurityAttributes As Long, _ 
     ByVal dwStackSize As Long, _ 
     ByVal lpStartAddress As Long, _ 
     ByVal lpParameter As Long, _ 
     ByVal dwCreationFlags As Long, _ 
     lpThreadId As Long) As Long 
    µ÷ ÓÃ £º 
    hnd = CreateThread(0, 2000, AddressOfÏß ³Ì Ìå Ãû £¨ º¯ Êý Ãû £© ,²Î Êý , 0, threadid) 
    ¼´ ¿É ¡£ 
<END>
