1. #1
    Nouveau membre du Club
    Inscrit en
    mars 2013
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : mars 2013
    Messages : 42
    Points : 37
    Points
    37

    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 388
    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 388
    Points : 3 061
    Points
    3 061

    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
    Nouveau membre du Club
    Inscrit en
    mars 2013
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : mars 2013
    Messages : 42
    Points : 37
    Points
    37

    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 388
    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 388
    Points : 3 061
    Points
    3 061

    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, 10h44
  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, 10h35
  3. Checkbox qui coche toutes les autres!
    Par myomyo dans le forum JavaScript
    Réponses: 11
    Dernier message: 30/05/2006, 14h59
  4. [JFrame] Désiconifier toutes les autres fenêtres en même temps
    Par stoukou dans le forum Fenêtres/Dialogues
    Réponses: 5
    Dernier message: 07/10/2005, 13h01
  5. Réponses: 1
    Dernier message: 16/02/2005, 13h04

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