Logique du choix de fichier et des nouvelles tentatives
Si le fournisseur d'événements FileSystemWatcher ne parvient pas à lire un fichier d'événements, il peut ajouter le fichier à une file d'attente avant de le traiter. Cette rubrique décrit la logique du choix de fichier et des nouvelles tentatives du FileSystemWatcher
File d'attente de fichier
Lorsque le service Windows ou l'application qui exécute le fournisseur d'événements FileSystemWatcher est démarré et que le fournisseur d'événements est activé, le fournisseur d'événements FileSystemWatcher ajoute tous les fichiers .xml pour lesquels il dispose de l'autorisation de lecture à une file d'attente. La mise en file d'attente des fichiers évite à la mémoire tampon de la classe FileSystemWatcher de se remplir, ce qui pourrait empêcher le traitement des fichiers.
Ainsi, les nouveaux fichiers .xml sont traités immédiatement, au fur et à mesure de leur ajout. Les nouveaux fichiers sont ajoutés à la file d'attente uniquement au démarrage du fournisseur d'événements ou si erreur se produit lors de la tentative de traitement d'un fichier.
Le fournisseur d'événements FileSystemWatcher essaye de traiter les fichiers en file d'attente selon une planification que vous spécifiez lorsque vous définissez le fournisseur d'événements. Pour chaque fichier en file d'attente, le fournisseur d'événements FileSystemWatcher essaye de lire les données à partir du fichier. Lorsqu'il parvient à lire les données et à les envoyer à l'application, le fichier est supprimé de la file d'attente.
Notez qu'une thread est utilisée pour les tentatives de reprises. Notification Services traite une seule tentative de reprise à la fois (qui peut inclure plusieurs fichiers) ; les tentatives de reprises suivantes sont ignorées tant qu'une tentative de reprise n'est pas terminée.
Fichiers verrouillés et inaccessibles
Si un fichier est verrouillé lorsque le fournisseur d'événements FileSystemWatcher essaie de lire les données, le fournisseur d'événements laisse le fichier dans la file d'attente et incrémente un compteur pour le fichier. Il effectue une nouvelle tentative sur le fichier selon la planification que vous spécifiez jusqu'à ce que la limite du nombre de tentatives soit atteinte.
Si les paramètres de sécurité d'un fichier n'autorisent pas le fournisseur d'événements FileSystemWatcher à accéder au fichier, ce dernier n'est pas ajouté à la file d'attente. Dans ce cas, Notification Services surveillera le fichier pour déterminer si des modifications de sécurité y sont apportées. Dès qu' une modification de sécurité se produira, le fichier sera ajouté à la file d'attente.
Voir aussi
Concepts
Validation des fichiers
Définition d'un fournisseur d'événements de l'observateur du système de fichiers
Autres ressources
Fournisseur d'événements de l'observateur du système de fichiers
Fournisseurs d'événements standard
Définition des fournisseurs d'événements