Come eseguire più intervalli temporizzati?

1

Ho difficoltà a pianificare come implementare l'architettura. Il problema:

>  A user can save a number of profiles:
>     Name
>     URL
>     Time Interval

Name       | URL      |Time Interval
Sample1    |s.com     |5 mins
Sample2    |x.com     |2 mins
Sample3    |xxx.com   |7 mins

Lo scopo principale dell'app è scaricare immagini impostato dall'utente tramite intervallo di tempo. Il problema è come possiamo controllare ogni profilo con intervalli diversi, ad esempio l'utente ha creato 20 profili con intervalli di tempo diversi.

Useremo WPF e WCF su questo.

    
posta Prince Jea 29.01.2016 - 09:47
fonte

2 risposte

1

Ti consiglio di guardare quartz.net che ti aiuterà con la parte di programmazione dell'app. Ho provato la mia programmazione e mi sono liberato molto rapidamente. Puoi quindi concentrare i tuoi sforzi sulla logica dell'app stessa.

    
risposta data 29.01.2016 - 12:47
fonte
0

La soluzione più semplice è avere un ciclo che va in granulosità di 1 secondo e controlla se c'è qualche profilo da aggiornare, controllando il tempo del suo ultimo aggiornamento (dovrebbe essere impostato nel metodo .update () del profilo) e è intervallo.

Esempio di pseudocodice:

while(shouldRun()) {
  var startTime = currentTimeMiliseconds();
  for( var u : Users ) {
    if( u.getLastUpdateTime() + u.getInterval() <= currentTimeMiliseconds() ) {
      u.update();
    }
  }

  var diff = currentTimeMiliseconds() - startTime;
  if(diff < 1000) {
    sleepMiliseconds(1000-diff);
  }
}
    
risposta data 29.01.2016 - 13:20
fonte

Leggi altre domande sui tag