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

Cómo enviar un elemento de trabajo al grupo de subprocesos 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): 315460
Este artículo hace referencia al siguiente espacio de nombres de la Biblioteca de clases de Microsoft .NET Framework:
  • System.Threading

En esta tarea

Resumen
En este artículo paso a paso se muestra cómo enviar un método para el grupo de subprocesos para su ejecución.

En el entorno. NET, cada proceso tiene un grupo de subprocesos que puede utilizar para ejecutar métodos de forma asincrónica.

back to the top

Requisitos


En la lista siguiente se describe el hardware, el software, la infraestructura de red y los Service Packs recomendados que necesitará:
  • Microsoft Visual Studio .NET o Microsoft Visual Studio 2005
En este artículo se supone que está familiarizado con los temas siguientes:
  • Visual C# lenguaje de programación
back to the top

Crear una aplicación Visual en C# que utiliza el grupo de subprocesos

  1. Inicie Microsoft Visual Studio .NET o Microsoft Visual Studio 2005.
  2. Cree un nuevo proyecto de aplicación de Windows de Visual C# denominado PoolDemo.
  3. Utilice el cuadro de herramientas para agregar un control Button al formulario. El nombre predeterminado para el control Button es button1.
  4. Haga clic con el botón secundario en el formulario y, a continuación, haga clic en Ver código .
  5. Pegue la siguiente directiva using después de las directivas using existente, pero antes la declaración del espacio de nombres PoolDemo :
    using System.Threading;					
  6. Vuelva a la vista Diseño y, a continuación, haga doble clic en button1 . Pegue el código siguiente en el controlador de eventos Button1_Click :
    private void button1_Click(object sender, System.EventArgs e){	WaitCallback wcb = new WaitCallback(GetSysDirSize);	try	{		ThreadPool.QueueUserWorkItem(wcb);		MessageBox.Show("The work item has been placed on the queue");	}	catch (Exception ex)	{		MessageBox.Show("Error: " + ex.Message);	}}					
  7. Pegue el código siguiente dentro del cuerpo de la clase Form1 . El método GetSysDirSize calcula el número total de bytes que se almacenan en el directorio del sistema. GetSysDirSize llama a otro método denominado DirSize para realizar el cálculo.

    Nota : esta tarea puede tardar unos minutos para ejecutar.
    private void GetSysDirSize(object state){	long total_length = DirSize(Environment.SystemDirectory);	this.Text = total_length.ToString();}private long DirSize(string path){	long sz = 0;	System.IO.DirectoryInfo d = new System.IO.DirectoryInfo(path);		// List files.	foreach(System.IO.FileInfo f in d.GetFiles())	{		sz += f.Length;	}	// Recurse into directories.	foreach(System.IO.DirectoryInfo dx in d.GetDirectories())	{		sz += DirSize(dx.FullName);	}	return sz;}					
back to the top

Probar el ejemplo

  1. Presione CTRL+F5 para ejecutar la aplicación.
  2. Cuando aparece el formulario, haga clic en el botón. Cuando aparezca el cuadro de mensaje que el elemento de trabajo se ha colocado en la cola , haga clic en Aceptar para cerrar el cuadro de mensaje y volver al formulario principal. Transcurridos unos segundos, el tamaño total en el directorio del sistema se muestra en el título del formulario. La longitud del retraso depende de la velocidad de su equipo y el número de archivos en el directorio del sistema. El cálculo de los tamaños de archivo tiene lugar en un subproceso en el grupo de subprocesos.
back to the top

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 315460 - Última revisión: 12/11/2006 20:59:14 - Revisión: 2.3

Microsoft Visual C# 2005 Express Edition, Microsoft Visual C# .NET 2002 Standard Edition

  • kbmt kbhowtomaster kbsample kbthread KB315460 KbMtes
Comentarios