Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    338

    Creazione di un semplice servizio windows

    Ciao, poichè ho alcuni problemi con i primi passi in questa direzione vi allego il codice chiedendovi per cortesia qualche aiuto per capire cos'è che non va:
    vorrei creare un servizio (di test ovviamente) che alla partenza controlli se esiste un particolare file, altrimenti lo crei e vi scriva al fondo ogni 10 secondi una riga di testo. Alla fine si stoppi.

    Problema: il servizio scrive la prima riga e poi basta.. Se vado in debug scrive qualche riga a caso (me ne salta alcune, forse perchè in debug il comportamento non è lineare?)..

    Aiuto

    codice:
        public partial class Service1 : ServiceBase
        {
            private int _conta = 0;
    
            private string _percorso = "c:\\temp\\engine.txt"; //+ DateTime.Now.ToShortDateString().Replace("\\","_") + ".txt";
            private FileStream fs;
    
            public Service1()
            {
                InitializeComponent();
            }
    
            protected override void OnStart(string[] args)
            {
                // verifico se il file esiste
                FileInfo myCheckFile = new FileInfo(_percorso);
                // se esiste lo apro in append altrimenti lo creo
                if (myCheckFile.Exists)
                    fs = new FileStream(_percorso, FileMode.Append, FileAccess.Write);
                else
                    fs = new FileStream(_percorso, FileMode.CreateNew, FileAccess.Write);
            }
    
            protected override void OnStop()
            {
                fs.Close();
            }
    
            // scatta ogni 60 secondi (ora 10)
            private void timerSchedulazioni_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
            {
                // aggiorno il contatore
                _conta++;
                // scrivo il contatore
                StreamWriter myWriter = new StreamWriter(fs);
                myWriter.WriteLine(System.DateTime.Now.ToShortTimeString() + " - " + _conta);
                myWriter.Flush();
                // chiudo il writer
                myWriter.Close();
    
                if (_conta >= 10)
                    this.Stop();
            }
        }

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    338
    uppete

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    In genere, in un servizio, e' bene che la OnStart crei e avvii un nuovo thread in cui vengono svolte le operazioni.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    338
    cosa significa è bene?
    1- sarebbe meglio xchè [] ma funziona lo stesso
    2- deve per forza essere così

    hai qualche guida sui servizi?
    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.