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 :

Arrêter un chargement d'information


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 58
    Par défaut Arrêter un chargement d'information
    Bonjour,

    Je suis débutant en C# .
    J'ai plus l'habitude de développer en VB6.

    J'ai réécrit un formulaire de recherche de VB6 en C#.

    Ce formulaire contient un bouton de recherche et qui fait appel à une procédure qui charge les informations dans un contrôle.

    Sur VB6, il y avait le "DoEvents", ce qui me permettait de tester l'événements "Click" du bouton et de stopper la recherche quand l'utilisateur le souhaitait.

    Je ne sais pas comment faire en C#, je pense qu'il faut utiliser les Threads mais aucun exemple que j'ai trouvé me permet d'arrêter ma recherche.

    Mon interface reste figée tout le temps du chargement.

    Si quelqu'un pouvait m'apporter la solution, merci d'avance

  2. #2
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    Tu peux par exemple, délégué la recherche à un thread de travail (pour, par exemple permettre d autres actions simultanées dans ton application) et le synchroniser avec le thread principal pour interagir avec lui.(comme le tuer dans ton cas)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 58
    Par défaut
    Citation Envoyé par ZaaN Voir le message
    Tu peux par exemple, délégué la recherche à un thread de travail (pour, par exemple permettre d autres actions simultanées dans ton application) et le synchroniser avec le thread principal pour interagir avec lui.(comme le tuer dans ton cas)
    Merci pour ta réponse.

    Voici ce que j'ai fait :
    - J'ai créer un Thread qui j'instancie un procédure qui fait appel à ma procédure de recherche dans le contructeur avant l'initialisation des composants.
    - Dans cette procédure je fais : this.BeginInvoke(new rech(recherche));
    - Je fais le start dans mon bouton.

    La recherche se lance, mais j'ai toujours mon interface figée.

    (Je débute dans les Threads, je ne sais si je fais tout dans le bon ordre)

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Par défaut
    Salut,

    tu te trompes de BeginInvoke. =)

    Ici, tu utilises le begininvoke d'un control (qui en fait permet de marshaller une methode sur le thread de ce control) et vu que tu dois l'appeller depuis ta form, ca bloque, normal (c'est comme si tu appellais la methode directement).

    Le begininvoke qui t'interresse, c'est celui la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Rech r = new Rech(Recherche);
    r.BeginInvoke([...], AsyncCallback, Object);
    //Avec AsyncCallback, la methode de finalisation (appelé à la fin de la procedure)
    //et Object un etat

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 58
    Par défaut
    Citation Envoyé par SirJulio Voir le message
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Rech r = new Rech(Recherche);
    r.BeginInvoke([...], AsyncCallback, Object);
    //Avec AsyncCallback, la methode de finalisation (appelé à la fin de la procedure)
    //et Object un etat
    Je dois metter quoi à la place de [...] et Object ?

    Merci.

  6. #6
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    As tu pensé au BackgroundWorker ? ( qui je pense, serai suffisant dans ton cas ... )

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/01/2016, 13h08
  2. [WB16] comment arrêter le chargement d'une table
    Par dfio13 dans le forum WebDev
    Réponses: 0
    Dernier message: 28/11/2013, 11h07
  3. Chargement progressif information ListView
    Par italia57 dans le forum Composants graphiques
    Réponses: 4
    Dernier message: 22/08/2012, 16h21
  4. pas de chargement d'information de base de donné
    Par moustaf_26 dans le forum Bases de données
    Réponses: 5
    Dernier message: 05/11/2011, 10h27
  5. ADO.NET Optimisation chargement informations
    Par Pfeffer dans le forum ASP.NET
    Réponses: 8
    Dernier message: 28/03/2008, 11h43

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