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

VB.NET Discussion :

Timer qui bloque toutes les autres fenêtres


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Mars 2013
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 70
    Points : 40
    Points
    40
    Par défaut Timer qui bloque toutes les autres fenêtres
    bonjour,
    j'ai un timer qui lorsque déclenché bloque entièrement les autres fenêtres.
    J'ai voulu que ce timer n'influe pas sur les autres fenêtres.j'ai fait des recherches, il me semble que les thread peuvent résoudre le problème.mais je ne sais comment utiliser les thread. peut on faire un timer qui s'exécute en arrière plan?Je suis vraiment bloqué.J'ai besoin de vos aides
    Merci.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Try
     
                ComboBox1.SelectedIndex = ComboBox1.SelectedIndex + 1
     
                Dim conf As MySqlConnection = New MySqlConnection("Data Source=" & ComboBox1.Text & ";Database=garage;User ID=keunene1;Password=;")
     
                Dim sql As MySqlCommand = New MySqlCommand("SELECT ipadresse from temps  ", conf)
     
                Dim dsf As DataSet = New DataSet()
     
                Dim DataAdapter1 As MySqlDataAdapter = New MySqlDataAdapter()
     
                Dim cb As MySqlCommandBuilder
     
     
                conf.Open()
                Dim myReader As MySqlDataReader = sql.ExecuteReader()
     
                Do While myReader.Read()
     
     
     
     
                    TextBox1.Text = myReader(0)
                    Timer1.Stop()
     
                Loop
     
                myReader.Close()
                conf.Close()
                If DataAdapter1.Fill(dsf, "users") Then
     
                End If
     
            Catch
            End Try
     
     Private Sub configu_Load(sender As Object, e As EventArgs) Handles MyBase.Load
     
     
            Try
     
                'thread_test.Start()
                Timer1.Start()
                Timer1.Interval = 20000
     
     
     
            Catch
            End Try
    		end sub
    merci déjà de m'assister

  2. #2
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Citation Envoyé par keunene Voir le message
    J'ai voulu que ce timer n'influe pas sur les autres fenêtres.j'ai fait des recherches, il me semble que les thread peuvent résoudre le problème.mais je ne sais comment utiliser les thread. peut on faire un timer qui s'exécute en arrière plan?Je suis vraiment bloqué.J'ai besoin de vos aides
    Quel est le but de ce timer? Dans quel fenêtre est-il manipulé (fenêtre principale, pop-up, ...)?

    Logiquement, il ne devrait bloquer l'interface qu'une fois toutes les 20 secondes (tu as mis un interval à 20 000). Quel traitement est réalisé lorsqu'il est déclenché?

  3. #3
    Membre du Club
    Inscrit en
    Mars 2013
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 70
    Points : 40
    Points
    40
    Par défaut
    le timer est sur sur une fenêtre secondaire, qui est lancée en même temps que la fenêtre principale.
    en fait cette fenêtre a pour but de trouver une adresse ip et d'envoyer les données dans une base de données.c'est sa recherche qui crée des exceptions(que j'ai désactivées), ce qui bloque l'application entière..une fois l'adresse trouvée le timer fonctionne sans qu'aucune fenêtre ralentisse.

  4. #4
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Citation Envoyé par keunene Voir le message
    en fait cette fenêtre a pour but de trouver une adresse ip et d'envoyer les données dans une base de données.
    Si la recherche met du temps, il est normal que cela bloque la fenêtre, puisque tu est "bloqué" dans le handler de ton timer. Il faudrait lancer ce traitement de recherche dans un thread différent. Ce formulaire secondaire est visible? Ou c'est juste pour te permettre de faire ce traitement?

Discussions similaires

  1. [AC-2003] Case à cocher qui cochent toutes les autres
    Par lucas-18 dans le forum IHM
    Réponses: 4
    Dernier message: 27/10/2010, 09h44
  2. Ordinateur qui se bloque toutes les 5-10 min.
    Par jbidou88 dans le forum Windows Vista
    Réponses: 16
    Dernier message: 13/01/2008, 09h35
  3. Checkbox qui coche toutes les autres!
    Par myomyo dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 30/05/2006, 13h59
  4. [JFrame] Désiconifier toutes les autres fenêtres en même temps
    Par stoukou dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 07/10/2005, 12h01
  5. Réponses: 1
    Dernier message: 16/02/2005, 12h04

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