public void AggiungiAnalisi(IAnalisi analisi) { analisi.Stazione = Stazione; analisi.GestoreEventi = _gestoreEventi; RicevitoriDati += analisi.OnDatiDisponibili; // Avvio il thread dell'analisi analisi.Avvia(); }
public void OnLogout() { staFacendoLogout = true; magnitudoCodaThread.Abort(); frequenzaCodaThread.Abort(); Sorgente?.Ferma(); Sorgente?.RimuoviAnalisi(magnitudo); Sorgente?.RimuoviAnalisi(frequenza); magnitudo.RicevitoriRisultato -= SegnalaMagnitudo; frequenza.RicevitoriRisultato -= SegnalaFrequenza; GestoreEventi.RicevitoriEventoSismico -= RiceviEvento; this.magnitudo = null; this.frequenza = null; Sorgente = null; }
private void HomeDashboard_Load(object sender, EventArgs e) { this.panelAllertaEvento.Visible = false; threadSorgente = new Thread(() => Sorgente.CicloPrincipale()); threadSorgente.Start(); magnitudo = new AnalisiMagnitudine(); Sorgente.AggiungiAnalisi(magnitudo); magnitudo.RicevitoriRisultato += SegnalaMagnitudo; frequenza = new AnalisiFrequenza(); Sorgente.AggiungiAnalisi(frequenza); frequenza.RicevitoriRisultato += SegnalaFrequenza; magnitudoCodaThread = new Thread(() => { while (!staFacendoLogout) { double corrente = codaMagnitudo.Take(); updateChartMagnitudo(corrente); } }); magnitudoCodaThread.Start(); frequenzaCodaThread = new Thread(() => { while (!staFacendoLogout) { double corrente = codaFrequenza.Take(); updateChartFrequenza(corrente); } }); frequenzaCodaThread.Start(); // Registro il gestore di eventi GestoreEventi.RicevitoriEventoSismico += RiceviEvento; }
public void RimuoviAnalisi(IAnalisi analisi) { RicevitoriDati -= analisi.OnDatiDisponibili; analisi.Ferma(); }