J'écris une application Windows FileWatcher qui recherchera des modifications dans un dossier spécifié, puis enregistre les détails dans un fichier TXT. P>
J'ai suivi exactement ce qui est mentionné dans cet article ci-dessous http://www.codeproject.com/kb/dotnet/folderwatcher.aspx p>
Lorsque je touche F5 de mon application, puis créez ou modifiez un fichier dans le dossier qui est regardé, il jette l'erreur mentionnée ci-dessous. p>
aide s'il vous plaît p>
Fonctionnement transversal non valide: Contrôle 'TxtfolderActivity' accédée à partir d'un fil autre que le fil qu'il a été créé. P>
3 Réponses :
Vous devez utiliser la méthode Invoke sur le formulaire E.G. Avec un délégué anonyme pour rendre vos modifications de réaction à l'événement.
Le gestionnaire d'événements est élevé avec un autre fil. Ce 2e thread ne peut pas accéder à des contrôles de votre formulaire. Il doit "l'invoquer" de laisser le thread de tous les travaux de contrôle qui les ont créés initialement. P>
au lieu de: p> Vous devez écrire: p>
+1 - Je dois essayer de résoudre ce problème, car il est considérablement plus simple que mon approche actuelle.
Vous essayez de mettre à jour l'interface utilisateur d'un fil non-UI. L'interface utilisateur a une affinité de fil et ne peut être mise à jour que d'un fil qui l'a créé. Si vous utilisez des winforms, consultez Comment: faire des appels de fil à threads à Windows Contrôles de formulaires Article MSDN. Fondamentalement, vous devrez mettre à jour l'interface utilisateur via Control.invoke méthode. Pour WPF, vous devez utiliser DisternerObject . P>
Fondamentalement, vous devez avoir deux threads dans votre application, au moins, et le fil que votre logique de contrôle est différent, vous obtenez donc cette erreur, car les commandes ne sont pas threadsafe. P>
Ceci est de vous protéger des problèmes pouvant être causés par plusieurs threads modifiant le même contrôle en même temps. P>
Vous pouvez trouver considérablement plus de détails en regardant ici: http://msdn.microsoft.com/fr- US / Bibliothèque / MS171728% 28VS.80% 29.aspx P>