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 :

Attendre la fin d'une copie de fichier (File.Copy())


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Attendre la fin d'une copie de fichier (File.Copy())
    Bonjour,
    je cherche depuis plusieurs heures une méthode simple et efficace pour lancer plusieurs copies de fichiers sans surcharger le poste.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while ()
    {
           File.Copy(file1, file2);
           Wait()....?
    }
    Pour l'instant ca lance bien toutes les copies mais l'application freeze car il n'attend pas d'avoir finie de copier la première pour lancer la deuxième, a une epoque je me souviens avoir trouver une solution que je ne trouve plus aujourd'hui (Il ne sagit pas d'une boucle while qui vérifie l'existence du fichier de destination en faisant un do.nothing().

    Si l'un d'entre vous à déjà eu ce problème ou connait la solution je lui en serai très reconnaissant!

    Merci

  2. #2
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Et si tu lance ta boucle dans un autre thread ?

    - To app ne sera pas freezée
    - Et tu laisse ainsi au FW et à l'OS le soin de gerer les priorités

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Citation Envoyé par DiplomatiCoder Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while ()
    {
           File.Copy(file1, file2);
           Wait()....?
    }
    Pour l'instant ca lance bien toutes les copies mais l'application freeze car il n'attend pas d'avoir finie de copier la première pour lancer la deuxième
    Ca m'étonnerait que l'appli "n'attende pas" : avec ce code, elle est obligée d'attendre ... File.Copy est une fonction synchrone, donc elle bloque jusqu'à ce que le fichier soit entièrement copié.

  4. #4
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Merci Tomlev

    Je ne savais pas que File.Copy etait synchrone bie qu'a la reflection ca parait normal !

    Cela explique d'autant mieux le freeze de CD
    Et justifie d'autant l'usage d'un thread specifique !

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Citation Envoyé par olibara Voir le message
    Je ne savais pas que File.Copy etait synchrone
    ben sauf indication contraire (nom du genre BeginMachin ou MachinAsync), la plupart des méthodes sont synchrones...

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour ses informations!
    Bien que la fonction copy soit synchrone cela me freeze mon application (no response) dès que je lance les copies, c'est pour cela que je me demandais quel solution pourrait m'éviter cela

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    exécute la copie dans un thread séparé

Discussions similaires

  1. Attendre la fin d'une popup
    Par maxattack dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 03/07/2007, 21h27
  2. [FLASH MX2004] [AS2] Attendre la fin de chargement d'un fichier avant de continuer.
    Par Demco dans le forum ActionScript 1 & ActionScript 2
    Réponses: 6
    Dernier message: 01/03/2007, 15h13
  3. [JFrame] Attendre la fin d'une autre fenêtre
    Par nicolas.pied dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 20/12/2005, 09h14
  4. Attendre la fin d'une action
    Par ederoeck dans le forum Access
    Réponses: 3
    Dernier message: 24/09/2005, 08h36
  5. [FLASH MX2004] Attendre la fin d'une anim
    Par stailer dans le forum Flash
    Réponses: 2
    Dernier message: 11/07/2005, 12h47

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