IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

C# Comment en cas d'exception d'un thread le faire recommencer a un point précis ? [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 28
    Par défaut C# Comment en cas d'exception d'un thread le faire recommencer a un point précis ?
    Bonjour à tous,

    Je vous explique la situation :

    J'ai un programme C# qui fait appel a un script Powershell dans un Thread, ce script écrit dans un fichier de log chaque seconde et d'autre part mon application C# compte le nombre de ligne en même temps.

    Parfois une exception ce lève et arrête mon programme en me disant que le fichier est en cours d'utilisation par un autre (Powershell), j'aimerais que quand cette exception ce lève, reprendre mon thread a un endroit précis (avant la boucle qui compte les lignes par exemple.).

    Je ne sais pas si c'est possible ou si il y a un moyen radical que Powershell et C# n'utilise pas le fichier en même temps.

    Merci d'avance.
    Bonne journée.

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Ton code C#, qui ne fait que de la lecture, ne doit pas ouvrir le fichier en mode exclusif.

    Exemple :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int line = 0;
    using (FileStream fs = new FileStream(@"C:\Dossier\Fichier.Extension", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
    {
        using (StreamReader sr = new StreamReader(fs))
        {
            line = sr.ReadToEnd().Split(new char[] { '\n' }).Count();
        }
    }

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 28
    Par défaut
    Bonjour,

    Cela fonctionne très bien je n'est plus d'erreur pour l'instant et je pense que cela ne reviendra pas, enfin bon, merci pour ton aide.
    Juste une petite question j'ai pas très bien compris cet ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     line = sr.ReadToEnd().Split(new char[] { '\n' }).Count();

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    ReadToEnd()
    Lit tout le contenue du fichier


    Split(new char[] { '\n' })
    Divise en autant d’élément (+1) qu'il y a de retour ligne

    .Count();
    Compte le nombre d’élément (nombre de ligne)

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 28
    Par défaut
    Merci beaucoup !!
    Bonne journée à toi !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 18/11/2009, 15h02
  2. Réponses: 13
    Dernier message: 10/04/2008, 19h13
  3. Comment résoudre ce probléme : Exception d'E/S: Connection refused ?
    Par adil_vpb dans le forum Connexions aux bases de données
    Réponses: 17
    Dernier message: 19/11/2007, 16h19
  4. Réponses: 3
    Dernier message: 29/05/2007, 16h50
  5. [Exception] Comment catcher une runtime exception ?
    Par bulbo dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 16/06/2005, 09h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo