Was ich aktuell habe, kann mit diesem Pseudocode zusammengefasst werden:
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)
}
Dieses Programm wird nur als geplante Aufgabe auf unserem Server eingerichtet. Wir besitzen das Programm und können damit machen, was wir wollen. Meine Frage stammt aus einem Blog über automatisierte Überwachungsprüfungen (ich habe keinen Link zur Hand).
Das brachte mich zum Nachdenken: Wie in aller Welt kann ich mein Programm so ändern, dass ich ein anderes "Überwachungs" -Programm starten kann? Oder sollte sich dies von einem Konsolenprogramm zu einem versteckten WPF- Programm ändern ?
Insgesamt würde ich es vorziehen, nur ein Programm auf meinem Computer ausführen zu können, das den Fortschritt des Programms über das Netzwerk überprüft, sodass ich kein RDP auf dem Server durchführen muss, um den Status zu überprüfen (dies wäre jedoch nicht der Fall) das Ende der Welt sein).
Insgesamt würde ich gerne ein Fenster sehen, in dem etwa Folgendes steht: Prozess x von y Bisher werden die folgenden Elemente verarbeitet. Listen Sie die Elemente in einer Tabelle auf und lassen Sie sie wie "Hochladen" oder "Warten auf Antwort" sagen. Vielleicht könnte ich, wenn ich verrückt werde, auch eine Warteschlange mit fehlgeschlagenen Gegenständen erstellen (aber das wäre nur extra).
Mein Geist neigt immer wieder zu einem Ereignis, aber ich kann nicht herausfinden, wie ich ein Programm ausführen würde, das ein laufendes Programm abonnieren und abbestellen kann. Ist das überhaupt möglich?