Watcher + Timer

venerdì 24 aprile 2009 - 09.40

fede2612 Profilo | Newbie


Salve ragazzi
Ho un problema che non riesco a risolvere:

Il programma usa Watcher per monitorare un file su un pc di rete e quando viene modificato deve far partire un timer, in debug il watcher funziona ma quando lancia al suo interno il timer, questo non parte..

La riga viene eseguita ma non succede nulla..

le righe del watcher sono le seguenti
FileSystemWatcher watcher1 = new FileSystemWatcher();
watcher1.Path = ServerDisplay1;
watcher1.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite;
watcher1.Filter = "onoff.txt";
watcher1.EnableRaisingEvents = true;
watcher1.Changed += new FileSystemEventHandler(Sala1OK);


Quando va a Sala1OK esegue tutte le righe e quando arriva a timer1.Start(); viene eseguita ma non parte (non salta nemmeno al timer1_Tick)
Avete un suggerimento da darmi??
Vi ringrazio!!

Jeremy Profilo | Guru

Ciao Federico.
E' facile che tu abbia impostato male il timer.....non vedo altre possibili cause.
Imposta il valore del timer a un valore superiore a 0 e, eventualmente, prova a farlo partire impostando la proprietà Enabled a true, anzichè usare il metodo start.

Facci sapere...
Ciao

fede2612 Profilo | Newbie


Ho risolto creando il timer all'interno delle righe richiamate da watcher!!

Ma Watcher ha un numero limitato??

Nel senso che ho bisogno di 15 watcher in contemporanea ma in realtà ne funzionano 9 ..

Hai qualche info a riguardo ??

Jeremy Profilo | Guru

Non credo che il limite sia nella possibilità di creare 15 diverse istanze del FileSystemWatcher ma, piuttosto, nella gestione degli eventi che vengono generati da tutti e 15 gli oggetti.
Credo che tu possa risolvere lavorando sulla proprietà InternalBufferSize.....ma non sono sicuro
Prova a dare un occhio qui:
http://msdn.microsoft.com/it-it/library/system.io.filesystemwatcher.aspx
e guarda cosa dice relativamente alla proprietà che ti ho indicato.

Facci sapere...
Ciao

fede2612 Profilo | Newbie


Ce l'ho Fatta!!
le 15 istanze funzionano anche senza lavorare su il parametro internalbuffersize

Me ne funzionavano 9 perchpè per i test usavo sempre lo stesso percorso di un computer!

Se ne uso anche solo 2 vengono gestiti tutti!!

Ti ringrazio per il GRANDE aiuto che mi hai dato

Ciao
Fede
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5