L'utilizzo delle API messe a disposizone dal SO (nel caso di Windows
https://learn.microsoft.com/en-us/windows/win32/sync/synchronization-objects
)
e' il modo CORRETTO di fare il lavoro.
Un'altro e' quello di controllare SE ESISTE gia' in processo attivo che sta' usando l'eseguibile corrente.
ANCHE in questo caso si deve passare per le API di WIndows, ovviamente.
L'alternativa il file, va ancora bene MA con un po' di controlli in piu'.
NON BASTA la sola presenza del file.
Come minimo bisogna modificare il timestamp del file ogni T secondi minuti.
Quindi il secondo processo puo' controllare se il file e' presente e SE NON E' STATO AGGIORNATO PER TEMPO MAGGIORE di K*T
(con K almeno 2)
E' ovvio che se il file e' presente, ma non e' stato aggiornato, allora il processo che lo gestiva e' ""morto prematuramente"".
Perche' K*T?
Per evitare falsi negativi.
Tutta questa logica va applicata ANCHE nel caso del record salvato sul DB.