Je voudrais expérimenter un peu avec ces nouveaux mots-clés introduits dans C# 5. Je suis intéressé à regarder comment distribuer le travail de manière concomitante. Je le ferais plus naturellement avec un pool de threads mais j'étais intéressé à faire de même avec ce nouveau pattern asynchrone. Donc voici mon exemple de jouet, j'écris un robot qui va explorer à partir de n sites racines et suivre le lien plus bas. Existe-t-il un bon modèle de concurrence pour écrire cette application.Utiliser le modèle async/await pour télécharger plusieurs documents
Répondre
Indépendamment de la technologie de filetage utilisée, vous avez besoin d'un responsable pour distribuer la charge de travail aux travailleurs individuels. Le gestionnaire créera le numéro 1-N des processus de travail. Dans les processus de travail, ils feront la méthodologie de threading cible que vous choisissez.
Je vous recommande de créer une interface à laquelle chacun de ces travailleurs devra adhérer et au sein de l'interface, il spécifie une méthode de démarrage qui prend l'url, une éventuelle erreur conditions qui sont publiques et peuvent être vérifiées, la possibilité de arrêter le processus et un moyen de transmettre des données lorsque le travail est terminé en supposant aucune erreur. Enfin un statut tel que enum, pour savoir s'il fonctionne actuellement ou arrêté ou arrêté avec des erreurs.
Ensuite, le gestionnaire peut simplement créer chaque processus en transmettant l'URL cible et en plaçant l'unité de travail dans sa propre file d'attente interne. Le gestionnaire parcourt ensuite la file d'attente à la recherche d'éléments qui se marquent comme étant terminés, puis transmet les données à une interface graphique (?) Pour les montrer à l'utilisateur final.
Alors, comment ce nouveau modèle d'attente asynchrone s'adaptera-t-il? Vous effectuez simplement l'appel en utilisant async await dans votre classe de worker et traitez les données si nécessaire. Le gestionnaire n'a pas besoin de savoir car la classe communique avec le gestionnaire via les méthodes d'interface.
Voici quelques documents pour vous lancer sur le async vous attendent modèle:
The Task-Based Async Await Pattern (téléchargement mot) par Stephen Toub
Asynchronous Programming with Async and Await (C# and Visual Basic)
- 1. Télécharger plusieurs documents PDF en utilisant itextsharp
- 2. Comment utiliser le même modèle pour plusieurs destinataires?
- 3. Modèle recommandé pour télécharger plusieurs fichiers dans Monotouch (asynchrone/multithread)
- 4. ravendb télécharger documents erreur
- 5. AngularJS. Utiliser le modèle dans plusieurs endroits
- 6. Comment télécharger plusieurs documents (en vrac) dans Document DB
- 7. sphinx pour plusieurs documents séparés
- 8. Comment télécharger le modèle actuel
- 9. Mongoose - Formulaire pour enregistrer le modèle avec des documents incorporés
- 10. Télécharger des documents pour partager le point 2010 Bibliothèque de documents
- 11. Comment télécharger plusieurs images sans utiliser ASIHTTPRequest
- 12. AFNetworking - Utiliser AFHTTPRequestOperation pour télécharger le fichier?
- 13. Comment utiliser HttpWebRequest pour télécharger le fichier
- 14. Comment utiliser vapply pour télécharger le web?
- 15. Macro pour le découpage un-à-plusieurs de documents Word
- 16. remplir plusieurs sous-documents
- 17. Télécharger des documents avec SFSafariViewController
- 18. Insérer plusieurs documents
- 19. XSLT 1.0: le tri entre plusieurs documents
- 20. comment utiliser le modèle de correspondance opencv pour charger plusieurs images et un modèle
- 21. iPhone - Comment télécharger le fichier xml dans le répertoire Documents
- 22. Comment utiliser SharePoint Client Object Model et PowerShell pour télécharger des documents dans des bibliothèques?
- 23. afficher les documents dans le navigateur sans télécharger
- 24. Lucene Indexer plusieurs documents
- 25. python/pylons - plusieurs contrôleurs pour le modèle
- 26. Ext.form.ComboBox: Utiliser le modèle pour displayField
- 27. Utiliser Twitter Bootstrap pour le modèle Joomla
- 28. .net moteur de modèle pour produire des documents Word
- 29. MongoId: trouver tous les enfants documents de plusieurs documents parents
- 30. Télécharger le contenu sur wifi seulement ou utiliser le wifi et le réseau 3G pour télécharger
Il y a beaucoup d'articles sur Internet sur exactement cet exemple, avez-vous essayé de les regarder? – svick
Voulez-vous en repérer un. Je n'en ai pas vraiment trouvé un là-dessus. Une chose à noter est qu'il ne s'agit pas d'un pool de threads ou async/wait il s'agit d'utiliser les deux en même temps – Dave
@Dave: Quel est le bénéfice du pool de threads ici? Comment voulez-vous l'utiliser? –