Questa è una domanda di alto livello, sperando di evitare risposte che potrebbero entrare nella logica specifica del sistema operativo, nella logica specifica della lingua / quadro, ecc.
Ho un'applicazione console che ho costruito principalmente per me stesso, dove ho due programmi:
- Programma A: recupera i dati da un sito Web, quindi li archivia in un database
- Programma B: visualizza i dati dal database, con aggiornamenti in tempo reale quando vengono memorizzati nuovi dati
Dato che lo uso da solo, non ho pensato di eseguire il programma A, quindi di eseguire il programma B. O viceversa, l'ordine non è significativo quando sono processi indipendenti.
NOTA: Non riesco a incorporare il Programma A nel Programma B per funzionare come un thread separato, perché l'API si disconnetterà se il Programma A non riesce a tenere il passo con il flusso di dati.
Sarebbe logico generare il programma A come processo figlio del programma B, quindi delegare un thread (in modo che il thread principale possa continuare) per controllare che il processo figlio esca (errore API o qualcosa) e generare un nuovo figlio processo del programma A? Ripeti fino al termine. Quale sarebbe la pratica comune? Supporrei che qualcosa del genere sarebbe più standard, poiché gli utenti sarebbero confusi avendo due eseguibili da eseguire.
Come cambierebbe la tua risposta se si trattasse di un'applicazione web? Se il programma B fosse un web server di qualche genere? Assumi un server Web in cui lo sviluppatore avrebbe la possibilità di generare un processo figlio e un thread di monitoraggio. Suppongo che sia più vicino all'approccio che ho ora con due processi indipendenti.