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();
        }
    }