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 :

Faire un processus "tache de fond" en moins sale.


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut Faire un processus "tache de fond" en moins sale.
    Bonjour a tous, tout est dans le titre :
    voici un code que je suis en train de tester :

    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
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Diagnostics;
    using System.Net;
    using System.Threading;
    using System.Runtime.InteropServices;
    namespace WindowsFormsApplication1
    {
     
     
        public partial class Form1 : Form
        {
            [DllImport("dnsapi.dll", EntryPoint = "DnsFlushResolverCache")]
            private static extern UInt32 DnsFlushResolverCache();
     
            public static void FlushMyCache() //This can be named whatever name you want and is the function you will call
            {
                UInt32 result = DnsFlushResolverCache();
            }
     
            public Form1()
            {
                InitializeComponent();
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {
                while (true)
                {
                    IPHostEntry hosts;
                    hosts = Dns.GetHostEntry("www.google.fr");
                    FlushMyCache();
                    for (int index = 0; index < hosts.AddressList.Length; index++)
                    {
                        Debug.WriteLine(hosts.AddressList[index]);
                    }
                    Thread.Sleep(1000);
                }
            }
        }
    }
    Comme vous pouvez le voir, je fais mon office dans l'initialisation de la première fenêtre. ça marches, c'est cool.
    Maintenant, existe t il un moyen de faire cela de manière propre ( ne pas faire tourner ma boucle dans l'initialisation )? Je ne suis pas obligé d'utiliser les forms window et le soft DOIT être lancé a la main ( double click ).

    Tartine

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Tu peux utiliser un Timer plutôt qu'une boucle while (true).
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut
    Okay, je vais creer un nouveau processus thread, mais ma fonction d'initialisation de la fenetre va se terminer et ensuite la fenetre va apparaitre ( ce que je veux absolument eviter ) non ?

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Non pas si tu utilises une winform.
    Ton application ne sera pas fermé tant que ta fenetre sera ouverte.
    Enfin bon je connais pas vraiment le besoin, mais si la form ne sert à rien autant passer par un service windows non? (Avec un bat pour le lancer, un autre pour l'arreter)

  5. #5
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Par défaut
    Nan, ce que je veux dire :
    Ma fenetre va _Apparaitre_ ce que je veux absolument éviter : c'est pour cela que je fais ce que je fais dans l'initialisation : parce que temps que je suis dans la boucle d'initialisation, je peux faire ce que je veux sans que la fenêtre n'apparaisse.

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Est ce que la fenetre est utile?
    Tu n'es pas obligé d'instancier la form, meme avec une application Winform.
    Tout se joue dans le Program.cs, et notamment l'appel de "Application.Run(new Form1());"
    ps: j'ai edité le message précendant en meme temps que tu postes, peut etre n'as tu pas vu mon message sur les services.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/04/2011, 21h58
  2. faire tourner un script en tache de fond
    Par suzan_ dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 25/09/2010, 08h38
  3. Faire tourner une GtkDialog en tache de fond
    Par Gamall dans le forum GTK+ avec C & C++
    Réponses: 19
    Dernier message: 15/09/2010, 17h23
  4. Faire tourner une Application en Taches de fond
    Par ArkAng3 dans le forum MFC
    Réponses: 3
    Dernier message: 26/08/2005, 14h06
  5. [Question] serveur en tache de fond
    Par Nicaisse dans le forum Réseau
    Réponses: 11
    Dernier message: 14/08/2003, 10h47

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