Ciao
Il programma che rimane nero è quello che effettua l'elaborazione dei dati. L'ho fatto come programma Console perché è in costante elaborazione, se guardi nella classe Elaborator, c'è una funzione Elabora, che prende i dati correnti dalla memoria condivisa:
this.data = SharedData.FromIntPtr(sharedMemPtr);
Ed effettua una elaborazione di esempio:
data.var1++;
data.var2 = (data.var2 * 2 + 1) % 10000000000;
Quindi li risalva nella memoria condivisa:
this.data.SaveToIntPtr(this.sharedMemPtr);
L'elaborazione viene fatta in continuazione, infatti nella Main c'è un
while (true)
{
elab.Elabora();
}
Per visualizzare i dati correnti e\o modificarli, devi invece compilare e far partire l'applicazione SharedReader, l'interfaccia di questa applicazione si adatta alla struttura che hai compilato, e quindi clickando su Carica ti scrive nelle TextBox i valori correnti della struttura nella memoria condivisa, mentre clickando su Modifica salva i valori nella memoria (e verranno subito modificati dal SharedWriter, che è costantemente in azione, come puoi verificare clickando subito su Carica)
Luca