2012-12-30 11 views
6

Sto scrivendo un'applicazione per Windows 8 che verrà eseguita principalmente in background. Questa app sarà specifica per i computer (ad esempio senza tablet o telefoni, nel caso in cui ciò faccia la differenza). Deve essere in grado di guardare una cartella specificata mentre è in esecuzione in background e ricevere una notifica quando c'è una modifica in quella cartella. Poiché si tratta di un'app di Windows Store, non è possibile utilizzare uno FileSystemWatcher, che sarebbe perfetto per la mia situazione. Inoltre, non posso usare un timer per guardare la cartella perché queste modifiche si verificano ogni 10-15 secondi e il timer non supporta tempi inferiori a 15 minuti. Quali altre opzioni ho?Come posso monitorare una cartella per le modifiche sullo sfondo di un'app di Windows?

+0

Si potrebbe fare eseguire un programma in background che esegue il controllo e restituisce ogni volta che c'è una modifica. Ciò aggirerebbe la limitazione di 15 minuti. – FrostyFire

+0

@JABFreeware Quindi dovrei scrivere un altro programma che guardi la cartella, la impacchetta in un eseguibile, aggiunga l'eseguibile alla mia app, faccia funzionare la mia app, poi dica alla mia app di ascoltare i messaggi dall'eseguibile? – Garrett

+2

Una soluzione potrebbe essere quella di non mettere la tua applicazione in un negozio che ti impedisce di fare ciò che vuoi fare. –

risposta

1

Dato che non è possibile utilizzare un timer che scatta ogni 15 secondi circa, l'unica cosa che posso raccomandare è eseguire un ciclo semplice, che prima del ciclo controlla l'ora del sistema dall'orologio di sistema, quindi con ogni loop controlla la differenza tra l'orologio di sistema corrente e il valore memorizzato originariamente. Quando si arriva a 15 secondi il ciclo si interrompe e avvia il codice che controlla la cartella. Se il codice nel ciclo è semplice e fa uso di una chiamata Sleep, non dovrebbe richiedere pochissime risorse di sistema.

Spero che questo ti aiuti!

+0

Occupato in attesa? Per lo meno suggerisci che ha messo una sorta di chiamata 'Sleep' nel ciclo, se è permesso che sia ... altrimenti ucciderà la CPU, e ti farà perdere la batteria! Un ciclo vuoto fa ** non ** usa "pochissime risorse di sistema". Mantiene costantemente il processore (o almeno un core) funzionante al 100% della capacità. –

+0

@MattiVirkkunen Credo che abbia pensato che avrei messo un equivalente 'Sleep'. So che altrimenti ucciderebbe la CPU. – Garrett

+0

@MattiVirkkunen sì, l'ho pensato. Modificherò la mia risposta solo per chiarire – FrostyFire

Problemi correlati