Radim neku aplikaciju za automatski update software-a, ali sam naišao na problem. Datoteke preuzimam sa http servera api f-jom
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
a ona zaustavi izvršavanje programa dok ne preuzme celu datoteku rešio sam da animiram korisnika jednostavnom animacijom u to vreme.
Koristio sam sledeći način:
U formi:
Private Sub Command1_Click()
hThread = CreateThread(ByVal 0&, ByVal 0&, AddressOf AsyncThread, ByVal 0&, ByVal 0&, hThreadID)
CloseHandle hThread
End Sub
Private Sub Form_Unload(Cancel As Integer)
If hThread <> 0 Then TerminateThread hThread, 0
End Sub
U Modulu:
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
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
Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public hThread As Long, hThreadID As Long
Public Sub AsyncThread()
Sleep 10000
hThread = 0
End Sub
Ali ovde mi se desi da čim naiđe na "CloseHandle hThread" program se jednostavno sruši, dok ako umesto toga koristim "TerminateThread hThread, 0" onda sve radi OK u interpretatoru ali kad se kompjalira čim se napravi nova nit program se sruši.
Ima li neko rešenje koje bi podelio samnom?









[VB 6.0] Multithreading