2012-10-14 4 views
-1

J'ai fait une expérience sur GOF Méthode usine motif et utilisation des threads pour cela. J'ai utilisé le modèle de méthode d'usine GOF pour créer dynamiquement des threads en C# .Net. La structure du code est exactement la même que celle décrite dans l'exemple de modèle Factory Method. Je sais que la création de nouveaux sujets n'est pas considérée comme une bonne pratique. Mais parfois vous devez considérer certaines pratiques pas assez bonnes pour accomplir vos besoins. J'ai besoin de savoir qu'il est sûr de créer des threads dynamiquement par ce modèle ou y a-t-il un meilleur modèle ou une meilleure technologie pour créer et gérer des threads dans le temps d'exécution? Je vais l'implémenter dans mon projet où j'ai besoin de créer plusieurs threads en cours d'exécution.Discussion Création

+0

Langage de programmation? – rolve

+2

La classe .NET 4.0 TaskFactory saute aux yeux. À part réinventer cette roue et la rendre carrée, je suppose que cela prouve que l'utilisation d'une usine n'est pas «dangereuse». –

+0

@HansPassant: Merci .. S'il vous plaît Ecrire une réponse .. de sorte que je peux l'accepter .. –

Répondre

2

Comme indiqué par Hans Passant .NET 4.0 TaskFactory Class est un outil utile pour créer des threads simultanés.

Une fabrique de tâches est représentée par la classe System.Threading.Tasks.TaskFactory, qui crée des objets Task, ou la classe System.Threading.Tasks.TaskFactory, qui crée des objets Task. Les deux classes contiennent des méthodes que vous pouvez utiliser pour:

Create tasks and start them immediately. 

Create task continuations that start when any or all of an array of tasks complete. 

Create tasks that represent pairs of begin/end methods that follow the Asynchronous Programming Model. 

Références:

1

La création de nouveaux threads n'est pas considéré comme une bonne pratique. Envisagez d'utiliser le pool de threads. Thread Pool intègre de nombreuses optimisations. Si vous utilisez .Net 4.0, vous pouvez également utiliser la bibliothèque parallèle des tâches.

+0

veuillez s'il vous plaît spécifier quelques liens utiles sur TPL .. –