Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

Comment faire pour envoyer un élément de travail pour le pool de threads à l'aide Visual C#

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 315460
Cet article se réfère à l'espace de noms bibliothèque de classes Microsoft .NET Framework suivant :
  • System.Threading

DE CETTE TÂCHE

Résumé
Cette étape par étape explique comment faire pour envoyer une méthode pour le pool de threads d'exécution.

Dans l'environnement .NET, chaque processus dispose d'un pool de threads que vous pouvez utiliser pour exécuter les méthodes de façon asynchrone.

back to the top

Configuration requise


La liste suivante met en évidence le matériel recommandé, logiciel infrastructure réseau et service packs sont requis :
  • Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005
Cet article suppose que vous êtes familiarisé avec les sujets suivants :
  • Le C# langage de programmation
back to the top

Créer une application Visual C# qui utilise le pool de threads

  1. Démarrez Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005.
  2. Créez un nouveau projet de Visual application de Windows Visual c# nommé PoolDemo.
  3. Utilisez la boîte à outils pour ajouter un contrôle Button à l'écran. Le nom par défaut pour le contrôle de bouton est button1.
  4. Cliquez avec le bouton droit sur le formulaire, puis cliquez sur Afficher le code .
  5. Collez la directive suivante à l'aide après les instructions à l'aide existant, mais avant la déclaration de l'espace de noms PoolDemo :
    using System.Threading;					
  6. Passer en mode Création et double-cliquez sur button1 . Collez le code suivant dans le gestionnaire d'événements 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. Collez le code suivant dans le corps de la classe Form1 . La méthode GetSysDirSize calcule le nombre total d'octets qui sont stockés dans le répertoire système. GetSysDirSize appelle une autre méthode appelée DirSize pour effectuer le calcul.

    Remarque : cette tâche peut prendre du temps s'exécuter.
    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

Tester l'exemple

  1. Appuyez sur CTRL + F5 pour exécuter l'application.
  2. Lorsque le formulaire s'affiche, cliquez sur le bouton. Lorsque la boîte de message que l'élément de travail a été placée dans la file d'attente apparaît, cliquez sur OK pour faire disparaître la boîte de message et revenir au formulaire principal. Après un court délai, la taille totale des fichiers dans le répertoire système s'affiche dans la légende de l'écran. La longueur du retard dépend de la vitesse de votre ordinateur et le nombre de fichiers dans le répertoire système. Le calcul de tailles de fichier a lieu sur un thread dans le pool de threads.
back to the top

Avertissement : cet article a été traduit automatiquement

Propriétés

ID d'article : 315460 - Dernière mise à jour : 12/11/2006 20:59:14 - Révision : 2.3

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

  • kbmt kbhowtomaster kbsample kbthread KB315460 KbMtfr
Commentaires
t();