2009-11-15 5 views
0

Je suis novice en fils ici est la question,multithreading sur un fichier copie ouvert et écrire

J'ai 3 fils l'un d'entre eux appelle une méthode qui écrit dans un fichier via la méthode File.AppendAllText, autre thread Duplique la texte dans le même fichier, et le dernier thread lit le texte à partir du fichier et imprime sur une étiquette. Lorsque je lance les threads sur le même événement de clic de bouton, cela donne l'erreur que ce fichier est utilisé par une autre application, je sais pourquoi il donne cette erreur mais comment puis-je y parvenir?

Répondre

2

Vous pouvez chaîner les fils ensemble. Par exemple, lorsque le thread 1 est terminé, il démarre le thread 2 etc.

Les opérations sur les fichiers sont probablement la pire chose à laquelle vous pouvez essayer d'introduire la concurrence et, pour être honnête, vous n'avez pas besoin de ces 3 threads en même temps . Cela n'a aucun sens de commencer les 3 threads en même temps parce que vous ne savez pas dans quel ordre ils seront exécutés - et ceci est critique pour votre opération.

+0

merci pour la réponse, j'utilise 3 threads parce que notre professeur veut cela, je suis nouveau au multithreading. – zer0w1dthspace

+0

Utilisez threads par tous les moyens, il arrête votre interface utilisateur gel, mais ils doivent être exécutés dans l'ordre. –