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?
risposta
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!
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à. –
@MattiVirkkunen Credo che abbia pensato che avrei messo un equivalente 'Sleep'. So che altrimenti ucciderebbe la CPU. – Garrett
@MattiVirkkunen sì, l'ho pensato. Modificherò la mia risposta solo per chiarire – FrostyFire
Hai guardato alle attività in background di Windows Apps? C'è una domanda qui: Windows 8 Live Tile Background Agent Using C#
- 1. Come posso monitorare una directory di Windows per le modifiche?
- 2. Come posso monitorare il DOM per le modifiche?
- 3. Come monitorare un repository git per le modifiche?
- 4. Come utilizzare QFileSystemWatcher per monitorare una cartella per il cambiamento
- 5. Monitorare le modifiche su un oggetto array
- 6. Come rilevare le modifiche alla barra delle applicazioni di Windows?
- 7. Come posso disegnare qualcosa sullo sfondo di un ggplot?
- 8. Come posso vedere le modifiche in sospeso di Entity Framework?
- 9. Monitorare la directory delle modifiche
- 10. Utilizzo di FileSystemWatcher per monitorare una directory
- 11. Centratura di Windows sullo schermo
- 12. Apertura WebView sullo sfondo
- 13. Come monitorare le modifiche nell'URL (Identificatore frammento - la parte di ancoraggio di un URL)
- 14. Come utilizzare Fiddler per monitorare un servizio di Windows?
- 15. Inserimento di testo sullo sfondo di una cella
- 16. Come monitorare le visualizzazioni di pagina su una vista
- 17. Disegno sullo sfondo del desktop come sostituzione dello sfondo (Windows/C#)
- 18. Come monitorare le modifiche sugli oggetti contenuti in una ObservableList JavaFX
- 19. Modo affidabile di monitorare le modifiche ai file in una directory utilizzando il framework .NET
- 20. jQuery watch per le modifiche di domElement?
- 21. Come guardare una directory per le modifiche?
- 22. Come monitorare le visualizzazioni di pagina
- 23. Come posso localizzare una cartella di immagini per iOS?
- 24. Ricarica dati di UITableView sullo sfondo
- 25. Come monitorare le modifiche ai file su unità mappate in rete?
- 26. Disegna un semicerchio sullo sfondo di una vista
- 27. Come monitorare una cartella con tutte le sottocartelle e i file all'interno?
- 28. Come posso creare una cartella condivisa dalla riga di comando di Windows?
- 29. Come posso rilevare le modifiche su% ENV?
- 30. Controlla l'elenco delle directory per le modifiche?
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
@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
Una soluzione potrebbe essere quella di non mettere la tua applicazione in un negozio che ti impedisce di fare ciò che vuoi fare. –