Ejemplo como debes implementarlo
Código vb:
Ver originalDim Ts As ThreadStart
Dim T As Thread
Delegate Sub cambiarColor(ByVal c As Color)
Dim cc As cambiarColor
Private Sub Procesar()
Ts = New ThreadStart(AddressOf Aplicar_Filtro)
T = New Thread(Ts)
T.Start()
End Sub
' OJO CUANDO ESTES USANDO PROCESOS EN SEGUNDO PLANO Y QUIERE MANEJAR(REALIZAR CAMBIOS) OBJETOS QUE SE ENCUENTREN EN PRIMER PLANO DEBES USAR DELEGADOS
Private Sub Aplicar_Filtro()
' MOSTRAMOS MENSAJE ESTE MENSAJE NO NECESITA DELEGADO PORQUE NO DEPENDE DE PROCESOS EN PRIMER PLANO
msgbox("Mostrando Mensaje")
' EN CAMBIO SI HAGO ESTO
txtAviso.Text = "Filtrando" ' ME DARA ERROR PORQUE ESTOY TRATANDO DE CAMBIAR ALGO QUE ESTA EN PRIMER PLANO, ENTONCES ACA USO LOS DELEGADOS
' USANDO DELEGADOS
bb = New cambiarColor(AddressOf cambiarColorBackground)
If txtAviso.InvokeRequired Then txtAviso.Invoke(bb, Color.Red)
End Sub
private sub cambiarColorBackground(ByVal c As Color)
txtAviso.Color = c
end sub
Este es un ejemplo basico de como vas a utilzarlo por cada control que vas a realizar cambios entonces debes usar delegados