Este artículo describe cómo crear subprocesos en una aplicación de Microsoft Visual Basic .NET o Microsoft Visual Basic 2005 Windows. El espacio de nombres
System.Threading proporciona las clases que debe tener para trabajar con subprocesos.
Requisitos
En la lista siguiente se describe el hardware recomendado, software, infraestructura de red y service packs que usted necesita:
- Microsoft Windows 2000 o Microsoft Windows XP
- Microsoft Visual Basic .NET o Microsoft Visual Basic 2005
Este artículo se supone que está familiarizado con los temas siguientes:
- Programación de Visual Basic .NET o programación de Visual Basic 2005
- Visual Studio .NET o entorno de desarrollo integrado de Visual Studio 2005 (IDE)
- Tener conocimientos generales de los delegados y subprocesamiento
- Tener conocimientos generales de Visual Basic .NET o Visual Basic 2005
Crear una aplicación de Visual Basic .NET o Visual Basic 2005 con subprocesos
- Inicie Microsoft Visual Studio .NET o Microsoft Visual Studio 2005.
- Crear un nuevo proyecto de aplicación para Windows de Visual Basic llamado ThreadWinApp.
- Agregue un control Button al formulario. El botón se denomina Button1 de forma predeterminada.
- Agregue un componente ProgressBar al formulario. La barra de progreso se denomina ProgressBar1 de forma predeterminada.
- Haga clic en el formulario y, a continuación, haga clic en Ver código.
- Agregue la siguiente instrucción al principio del archivo:
- Agregue el siguiente controlador de eventos Click de Button1:
Private Sub Button1_Click( _
ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button1.Click
MessageBox.Show("This is the main thread")
End Sub
- Agregue la siguiente variable a la clase Form1 :
- Agregue el método siguiente a la clase Form1 :
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
Nota: éste es el código que subyace en el subproceso. Este código es un infinito repetir ese aleatoriamente aumenta o disminuye el valor de ProgressBar1 y, a continuación, espera 100 milisegundos antes de continuar. - Agregue el siguiente controlador de eventos Load de Form1. Este código crea un nuevo subproceso, hace que el subproceso de un subproceso en segundo plano y, a continuación, inicia el subproceso.
Private Sub Form1_Load( _
ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Load
trd = New Thread(AddressOf ThreadTask)
trd.IsBackground = True
trd.Start()
End Sub
Comprobar que funciona
- Genere y ejecute la aplicación. Tenga en cuenta que el valor en la barra de progreso cambia aleatoriamente. Se trata del subproceso nuevo en funcionamiento.
- Para demostrar que el subproceso principal es independiente del subproceso que cambia el valor de ProgressBar , haga clic en el botón en el formulario. Un cuadro de mensaje muestra el siguiente mensaje:Esperar la entrada. Observe que el valor de la barra de progreso continúa cambiando.
Solución de problemas
En las aplicaciones más complejas, asegúrese de sincronizar múltiples subprocesos cuando tiene acceso a las variables compartidas. Para obtener más información, consulte los temas relacionados en la documentación de ayuda en pantalla de Visual Basic y
SyncLock (instrucción).
Id. de artículo: 315577 - Última revisión: miércoles, 16 de enero de 2013 - Versión: 6.0
La información de este artículo se refiere a:
- Microsoft Visual Basic 2005
- Microsoft Visual Basic .NET 2003 Standard Edition
- Microsoft Visual Basic .NET 2002 Standard Edition
| kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315577 KbMtes |
Traducción automáticaIMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés):
315577
(http://support.microsoft.com/kb/315577/en-us/
)