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

Windows Forms Discussion :

[loop] ralentir le traitement d'une boucle


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 24
    Points
    24
    Par défaut [loop] ralentir le traitement d'une boucle
    Bonjour, bonjour!
    Dans mon appli, j'envoie des infos à un autre logiciel par le biais d'une boucle.
    Le traitement contient environ 50 "requetes" et la boucle est exécutée 10 fois de suite. Le problème c'est que je pense que mon pc ne supporte pas toujours ces 500 envois d'un coup et l'appli plante assez souvent. J'aurais voulu ralentir ce traitement, par exemple exécuter un tour de boucle en 1sec. Ce qui ferait 10sec pour tout envoyer.
    Est-ce possible de faire ça??

    Merci

    Jontleman

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Mets en attente la boucle avec Sleep (quoique je ne crois pas une seule seconde ton explication de PC qui supporte pas : à mon avis il y a quelque chose de pourri au niveau de ton code ou de ton design).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    sleep n'est pas toujours conseillé enfin dans le cas d'un thread principal

    sinon en effet ton appli qui plante vient de forcément de ton code qui bug (utiliser des try catch pour détecter les problèmes)

    après faut voir aussi comment tu envoies les données entre les 2 logiciels

    sinon tu peux utiliser un timer qui execute les 50 "requetes" et au bout de 10x arreter le timer
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    Citation Envoyé par sperot51 Voir le message

    après faut voir aussi comment tu envoies les données entre les 2 logiciels
    +1

    Ensuite, ralentir artificiellement l'envoi des données me paraît une solution un peu bancale...
    Je chercherais plutôt des pistes comme

    • Blindage du destinataire; un thread tampon qui reçoit, un thread qui traite...
    • Traitement par lots et communication entre l'envoyeur et le destinataire (lot 1 ok, next please...)
    In my experience, any attempt to make any system idiot proof will only challenge God to make a better idiot.

  5. #5
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Déjà, ralentir une boucle c'est bizarre... perso je cherche à les accélérer

    Si tu veux vraiment le faire, utilise un Timer et surtout pas de Sleep... ou autre truc dans le genre car c'est mauvais pour ton programme et tot ou tard tu auras des erreurs !
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    sleep sur un thread non principal est mieux que des timers, enfin plus fiables
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    sleep sur un thread non principal est mieux que des timers, enfin plus fiables
    Quel serait la nature du problème de fiabilité avec les timers ?

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    un évènement n'est pas quelque chose de fiable et avec un peu de chance c'est ce que microsoft pense aussi
    les évènements doivent être utilisés avec parcimonie et doivent avoir un traitement des plus rapide genre passer le relais à un autre thread et être pret à en attendre un autre

    on m'a raconté une appli vb6 ou des evenements de timer n'arrivaient pas, et meme des evenements de winsock dataarrival non plus

    après ptete que les évènements de .NET sont mieux et pas géré par l'OS
    mais en regardant un peu avec reflector, ca semble être non managé
    (certains removehandler dans la partie des dispose pour gérer la provenance du garbage collector iraient d'ailleurs dans ce sens)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Traitement dans une boucle <nested:iterate>
    Par charles888 dans le forum Struts 1
    Réponses: 1
    Dernier message: 15/03/2012, 12h02
  2. ralentir l'exécution d'une boucle
    Par al9000 dans le forum Débuter
    Réponses: 9
    Dernier message: 08/03/2010, 12h21
  3. optimiser le temp du traitement d'une boucle
    Par riad_09 dans le forum Développement
    Réponses: 1
    Dernier message: 05/11/2009, 08h38
  4. Accélération d'un traitement dans une boucle
    Par mobi_bil dans le forum Langage
    Réponses: 4
    Dernier message: 15/06/2009, 12h57
  5. [DEBUTANT]Procédure stockée Traitement sur une boucle de requete
    Par tripper.dim dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 21/06/2007, 16h24

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