Buenas Tardes:
Le planteo mi problema.
Ejecuto un proceso con una aplicación ("PROCESOX"), y debido a que no se que tiempo llevará el mismo es que he colocado en el mismo formulario una barra ("PROGRESSBAR1). La idea es que mientras se esté ejecutando el PROCESOX se inicia un proceso secundario que llene y vacie la barra, simplemente para que el usuario sepa que está trabajando.
Mi problema es que cuando ejecuto el PROCESOX se pone la pantalla en blanco, pues estimo que le consume recursos a la PC, y por lo tanto no se ve la barra que aumenta y disminuye, debido a que tambíen está en blanco.
Alguna idea de como hacer que no se ponga en blanco la aplicación?
O por lo menos el proceso encargado de mostrar la barra?
Este el código del subproceso que llena la barra y la vacia
Código:
Private Sub ThreadTask()
Dim stp As Integer
Dim newval As Integer
Dim rnd As New Random()
Do
stp = ProgressBar1.Step * rnd.Next(-1, 2)
newval = ProgressBar1.Value + stp
If newval > ProgressBar1.Maximum Then
newval = ProgressBar1.Maximum
ElseIf newval < ProgressBar1.Minimum Then
newval = ProgressBar1.Minimum
End If
ProgressBar1.Value = newval
Thread.Sleep(100)
Loop
End Sub
Y este el código del proceso principal
Código:
Private trd As Thread
Private Sub Form_Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CheckForIllegalCrossThreadCalls = False
trd = New Thread(AddressOf ThreadTask)
trd.IsBackground = False
trd.Start()
'Arranco mi proceso
PROCESOX.start
End Sub