Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Cómo crear un subproceso mediante C#

IMPORTANTE: 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): 815804
Para obtener una versión de Microsoft Visual Basic .NET de este artículo, consulte 315577.


Este artículo hace referencia a los siguientes espacios de nombres de la Biblioteca de clases de Microsoft .NET Framework:
  • System.Threading


En esta tarea

Resumen
Puede escribir aplicaciones multiproceso en Microsoft Visual C# .NET o en Microsoft Visual C#. Este artículo describe cómo puede crear y administrar subprocesos una simple aplicación de Visual C#.

back to the top

Requisitos

En la lista siguiente se describe el hardware, el software, la infraestructura de red y los service pack recomendados que se necesitarán:
  • Microsoft Windows 2000, Microsoft Windows XP o Microsoft Windows Server 2003
  • Microsoft Visual C# .NET o Microsoft Visual C# 2005
En este artículo se supone que está familiarizado con los temas siguientes:
  • Programación Visual C#
  • Entorno de Visual Studio .NET integrado desarrollo (IDE) o el IDE de Visual Studio 2005
back to the top

Crear una aplicación de C# con subprocesos

  1. Inicie Microsoft Visual Studio. NET, Microsoft Visual Studio 2005 o Microsoft Visual C# 2005 Express Edition.
  2. Cree un nuevo proyecto de aplicación de Windows de Visual C# denominado ThreadWinApp.
  3. Agregue un control Button al formulario. De forma predeterminada, el botón se denomina Button1 .
  4. Agregar un componente de ProgressBar al formulario. De forma predeterminada, la barra de progreso se denomina ProgressBar1 .
  5. Haga clic con el botón secundario en el formulario y haga clic en Ver código .
  6. Agregue la siguiente instrucción al principio del archivo:
    using System.Threading;
  7. Agregue el siguiente controlador de eventos Click de Button1 :
    private void button1_Click(object sender, System.EventArgs e){	MessageBox.Show("This is the main thread");}
  8. Agregue la siguiente variable a la clase Form1 :
    private Thread trd;
  9. Agregue el método siguiente a la clase Form1 :
    private void ThreadTask(){	int stp;	int newval;	Random rnd=new Random();	while(true)	{		stp=this.progressBar1.Step*rnd.Next(-1,2);		newval = this.progressBar1.Value + stp;		if (newval > this.progressBar1.Maximum)			newval = this.progressBar1.Maximum;		else if (newval < this.progressBar1.Minimum)			newval = this.progressBar1.Minimum;				this.progressBar1.Value = newval;		Thread.Sleep(100);	}}
    Nota éste es el código que subyace el subproceso. Este código es un infinito bucle que aleatoriamente aumenta o disminuye el valor de ProgressBar1 y, a continuación, espera 100 milisegundos antes de continuar.
  10. Agregue el controlador de eventos siguiente de carga para Form1 . Este código crea un nuevo subproceso, hace que el subproceso un subproceso en segundo plano y, a continuación, se inicia el subproceso.
    private void Form1_Load(object sender, System.EventArgs e){	Thread trd = new Thread(new ThreadStart(this.ThreadTask));	trd.IsBackground = true;	trd.Start();}
back to the top

Comprobar que funciona

  1. Genere y ejecute la aplicación. Observe que el valor de ProgressBar1 cambia aleatoriamente. Este es el subproceso nuevo en la operación.
  2. Para demostrar que es independiente del subproceso que cambia el valor de ProgressBar1 el subproceso principal, haga clic en el formulario el botón. Aparece un cuadro de diálogo con el siguiente mensaje de error:
    This is the main thread
Esperar la entrada. Observe que el valor de ProgressBar1 sigue cambiar.

back to the top

Solucionar problemas

En las aplicaciones más complejas, asegúrese de sincronizar múltiples subprocesos cuando tiene acceso a variables compartidas. Para obtener más información, vea la instrucción de bloqueo y temas relacionados en la documentación de C# .NET ayuda en pantalla de Visual.

back to the top
Referencias
Para obtener más información, visite el siguiente sitio Web de Microsoft o en la documentación del SDK de .NET Framework:

Propiedades

Id. de artículo: 815804 - Última revisión: 08/20/2007 08:43:19 - Revisión: 2.10

Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# .NET 2003 Standard Edition, Microsoft ADO.NET 1.0, Microsoft Common Language Runtime (included with the .NET Framework) 1.0, Microsoft Visual C# 2005 Express Edition

  • kbmt kbnamespace kbthreadsync kbthread kbhowtomaster KB815804 KbMtes
Comentarios
oft.com/ms.js"> /html>