Quello che ho attualmente può essere riassunto con questo pseudo codice:
public static void Main(string[] args)
{
var listOfObjects = Database.GetObjectsToUploadToOnlineService();
Parallel.ForEach(Upload)
}
private static void Upload(MyUploadObject obj)
{
//Build object (takes a few milliseconds)
//Format to JSON (takes a few more milliseconds)
//Upload (can take up to a max of 10 minutes)
//Wait for a response (can take up to a max of 10 minutes)
//Save response to our database (takes a few milliseconds)
}
Questo programma è appena impostato sul nostro server come attività pianificata. Possediamo il programma e possiamo fare ciò che vogliamo con esso. La mia domanda nasce da un blog sull'esecuzione di controlli di monitoraggio automatizzati (non ho un link a portata di mano).
Questo mi ha fatto pensare: come posso modificare il mio programma in modo da poter avviare un altro programma di "monitoraggio"? O dovrebbe cambiare questo da essere un programma console a dire un programma WPF nascosto?
Nel complesso, preferirei essere in grado di eseguire solo un programma sul mio computer che controlla l'avanzamento del programma attraverso la rete, quindi non devo eseguire il RDP nel server per verificarne lo stato (ma non lo farebbe essere la fine del mondo).
Nel complesso, suppongo che mi piacerebbe vedere una finestra che dice qualcosa del tipo: Elaborazione x di y finora, i seguenti elementi sono in fase di elaborazione. Elenca gli elementi in, ad esempio, una tabella e falli dire "Caricamento in corso" o "In attesa di risposta". Forse se impazzisco potrei anche capire come fare una fila di oggetti falliti (ma sarebbe solo extra).
La mia mente continua ad inclinarsi verso un evento, ma non riesco a capire come avrei eseguito un programma in grado di iscriversi e annullare l'iscrizione a un programma in esecuzione. È possibile?