2010-04-18 11 views
1

J'ai une méthode qui est appelée assez souvent, avec le texte entrant comme paramètre ..Aide pour C# pool de threads

Je cherche à créer un pool de threads qui vérifie la ligne de texte, et exécute des actions basé sur cela ..

Quelqu'un peut-il m'aider avec les bases de la création du pool de threads et de lancer de nouveaux threads s'il vous plaît? Il en est ainsi sacrément déroutante ..

+0

Vous serez agréablement surpris par la façon dont il est facile. – ChaosPandion

Répondre

1

Vous n'avez pas besoin de créer un pool de threads. Utilisez simplement le pool de threads existant géré par .NET. Pour exécuter une fonction Foo() sur un thread threadpool, procédez comme suit:

ThreadPool.QueueUserWorkItem(r => Foo()); 

Tout est fait! Assurez-vous d'intercepter les exceptions dans votre fonction Foo() - si une exception échappe à la fonction Foo, elle met fin au processus.

1

Voici un exemple simple qui devrait vous aider à démarrer.

public void DoSomethingWithText(string text) 
{ 
    if (string.IsNullOrEmpty(text)) 
     throw new ArgumentException("Cannot be null or empty.", "text"); 

    ThreadPool.QueueUserWorkItem(o => // Lambda 
     { 
      try 
      { 
       // text is captured in a closure so you can manipulate it. 

       var length = text.Length; 

       // Do something else with text ... 
      } 
      catch (Exception ex) 
      { 
       // You probably want to handle this somehow. 
      } 
     } 
    ); 
}