Sto per sviluppare un servizio Windows in C#. Questo servizio deve tenere traccia degli eventi nel sistema e scrivere di volta in volta alcuni dati nei file. Questi eventi in corso formano un certo stato, quindi terrò lo stato in memoria e lo aggiornerò man mano che gli eventi arriveranno. Non voglio complicare eccessivamente le cose, quindi non voglio che lo stato sia persistente su disco, ma mi chiedo se potrei in qualche modo renderlo persistente in memoria, così che se il servizio si arresta in modo anomalo (e il riavvio automatico da parte di Windows) potrebbe riprendere da dove è andato e andare avanti (probabilmente perdendo alcuni eventi, non un grosso problema).Mantenere i dati persistenti in memoria
Stavo pensando di creare un'area di memoria "condivisa", consentendo così a Windows di gestirlo e utilizzarlo solo nel servizio, ma non sono sicuro che l'oggetto persisterà dopo la morte del servizio.
Qualche idea?
EDIT: Non sto cercando una soluzione di overkill. I dati sono un po 'importanti quindi mi piacerebbe tenerlo in attesa in memoria fino al riavvio del servizio, ma i dati non sono troppo importanti. È più di una funzionalità piacevole da poter mantenere i dati facilmente, senza lavorare con file, processi esterni di terze parti e così via. La mia soluzione ideale sarebbe una semplice funzione incorporata (in .NET o in Windows) che mi fornirà una certa persistenza in memoria, giusto per recuperare da un evento di crash.
Checkout: ['PersistentDictionary'] (http://izlooite.blogspot.com/2011/04/persistent-dictionary.html) classe –