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 :

Exécution d'un timer dans un service


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Maroc

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

    Informations forums :
    Inscription : Septembre 2012
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Exécution d'un timer dans un service
    bonjour ,
    J'essai d'utiliser un timer dans un service windows. Le problème que le timer n'a pas l'air de se déclancher. c'est a dire le script que j'ai met
    dans Tupdate_Tick n'execute pas

    voila le code
    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
      Protected Overrides Sub OnStart(ByVal args() As String)
            Maclass.GPassage.chaine = "Provider=VFPOLEDB.1;Data Source=\\192.168.1.26\atlascom_old\UNIVERS2013\UNIVERS2013\bdgestc.dbc;"
            Tupdate.Interval = 100
            Tupdate.Enabled = True
          End Sub
        Protected Overrides Sub OnShutdown()
            Tupdate.Dispose()
        End Sub
    Private Sub Tupdate_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tupdate.Tick
            affectertax()
        End Sub
    Sub affectertax()
            ds = Maclass.getdataset(" SELECT  Nfact,Sum(Qte) As QteTSFB from lFacturec  where Nfact in (select Nfact from Facturec where  Anouveau=.f. And Valide=.T.  And len(alltrim(Message))=0  )  And Code in (select code from article where Sfamille='TSFB') group by Nfact  Order By Nfact desc")
            If ds.Tables(0).Rows.Count <> 0 Then
                'If CInt(ds.Tables(0).Rows(0).Item("QteTSFB")) >= 1000 Then
                qtetonne = CInt(ds.Tables(0).Rows(0).Item("QteTSFB")) / 1000
     
                If Maclass.Execute("UPDATE FACTUREC SET Message=' Dont TSB =" & CDec(qtetonne) * CDec(parametretaxe) & " Dhs'    where NfACT=" & ds.Tables(0).Rows(0).Item("Nfact")) = True Then
                    doc.Load(My.Application.Info.DirectoryPath & "\Facture.xml")
                    fact = doc.CreateElement("Facture")
                    Nfact = doc.CreateElement("Nfact")
                    message = doc.CreateElement("observation")
                    dtmodif = doc.CreateElement("Date")
                    Nfact.InnerText = ds.Tables(0).Rows(0).Item("nfact")
                    message.InnerText = " Dont TSB =" & CDec(qtetonne) * CDec(parametretaxe) & " Dhs"
                    dtmodif.InnerText = Date.Now
                    fact.AppendChild(Nfact)
                    fact.AppendChild(message)
                    fact.AppendChild(dtmodif)
                    doc.DocumentElement.AppendChild(fact)
     
                    doc.Save(My.Application.Info.DirectoryPath & "\Facture.xml")
                End If
                'End If
     
            End If
        End Sub
    Merci beaucoup de me répondre

  2. #2
    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
    les windows.forms.timer ne fonctionnent pas dans les services
    il y a 2 autres timers dans le framework (genre threading.timer) qui eux doivent fonctionner, sinon un thread avec une boucle et du sleep
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Maroc

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

    Informations forums :
    Inscription : Septembre 2012
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    merci beaucoup pour votre réponse

    mais comment je peux utiliser (threading.timer )

    j'ai aucune aidé je suis débutante merci bqqqqq pour m'aider

  4. #4
    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
    tu tapes threading.timer dans google, tu vas tomber sur l'aide de vb (msdn), tu lis les explications et tu fais des tests

    c'est valable pour tout ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    En consultant le msdn : http://msdn.microsoft.com/fr-fr/libr...ing.timer.aspx

    Edit: grilled

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Maroc

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

    Informations forums :
    Inscription : Septembre 2012
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    voila ça se marche bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     Dim myTimer As New System.Timers.Timer()
     Protected Overrides Sub OnStart(ByVal args() As String)
            Maclass.GPassage.chaine = "Provider=VFPOLEDB.1;Data Source=\\192.168.1.26\atlascom_old\UNIVERS2013\UNIVERS2013\bdgestc.dbc;"
            AddHandler myTimer.Elapsed, AddressOf OnTimedEvent
            myTimer.Interval = 1000
            myTimer.Enabled = True
            myTimer.Start()
        End Sub
     Private Sub OnTimedEvent(ByVal source As Object, ByVal e As ElapsedEventArgs)
     
            affectertax()
     
        End Sub
    mais le traitement de l'enregistrement dans fichier xml ne marche pas méme les modification sont bien effectuer
    voila le procedure
    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
     Sub affectertax()
            myTimer.Stop()
            Try
                ds = Maclass.getdataset(" SELECT  Nfact,Sum(Qte) As QteTSFB from lFacturec  where Nfact in (select Nfact from Facturec where  Anouveau=.f. And Valide=.T.  And len(alltrim(Message))=0  )  And Code in (select code from article where Sfamille='TSFB') group by Nfact  Order By Nfact desc")
                If ds.Tables(0).Rows.Count <> 0 Then
                    'If CInt(ds.Tables(0).Rows(0).Item("QteTSFB")) >= 1000 Then
                    qtetonne = CInt(ds.Tables(0).Rows(0).Item("QteTSFB")) / 1000
     
                    If Maclass.Execute("UPDATE FACTUREC SET Message=' Dont TSB =" & CDec(qtetonne) * CDec(parametretaxe) & " Dhs'    where NfACT=" & ds.Tables(0).Rows(0).Item("Nfact")) = True Then
                        doc.Load(My.Application.Info.DirectoryPath & "E:\Facture.xml")
                        fact = doc.CreateElement("Facture")
                        Nfact = doc.CreateElement("Nfact")
                        message = doc.CreateElement("observation")
                        dtmodif = doc.CreateElement("Date")
                        Nfact.InnerText = ds.Tables(0).Rows(0).Item("nfact")
                        message.InnerText = " Dont TSB =" & CDec(qtetonne) * CDec(parametretaxe) & " Dhs"
                        dtmodif.InnerText = Date.Now
                        fact.AppendChild(Nfact)
                        fact.AppendChild(message)
                        fact.AppendChild(dtmodif)
                        doc.DocumentElement.AppendChild(fact)
     
                        doc.Save(My.Application.Info.DirectoryPath & "E:\Facture.xml")
                    End If
                    'End If
     
                End If
            Catch ex As Exception
            Finally
                myTimer.Start()
            End Try
     
            myTimer.Start()
        End Sub
    merci de me repondre

  7. #7
    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
    Citation Envoyé par AhmedZineb Voir le message
    mais le traitement de l'enregistrement dans fichier xml ne marche pas
    on est pas là pour tester ton code et te donner le code qui marche
    donc si tu as un problème, tu le décris !
    "ca ne marche pas" ca n'a jamais mené à rien ...


    Catch ex As Exception
    c'est cool d'intercepter les erreurs, mais si c'est pour ne rien faire ca ne sert à rien
    tu peux enregistrer les détails de l'erreur dans un fichier
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Maroc

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

    Informations forums :
    Inscription : Septembre 2012
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Merci bq

    mais j'ai voulu dire que le code ca se marche bien dans windows form je l'ai testé
    mais dans windows service s'éxécute pas et il ne génére aucun error

  9. #9
    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
    le service s'arrete t il ? (actualiser la fenetre services)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Futur Membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Maroc

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

    Informations forums :
    Inscription : Septembre 2012
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    je l'ai actualisé et tjr rien
    j'ai essayé avec fichier txt au lieux de xml et il ca marche bien

    merci beaucoup

Discussions similaires

  1. Timer dans un service windows pour création d'un serveur
    Par amine_taz dans le forum PureBasic
    Réponses: 1
    Dernier message: 24/02/2014, 12h34
  2. Problème de timer dans un service window
    Par EmacLi dans le forum Services Windows
    Réponses: 5
    Dernier message: 10/01/2011, 11h43
  3. timer dans un service windows
    Par yochima dans le forum C#
    Réponses: 5
    Dernier message: 20/08/2009, 10h57
  4. Réponses: 4
    Dernier message: 03/10/2008, 13h37

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