Alcuni background: Sto scrivendo un'applicazione con diversi moduli, ecc. Gli utenti devono effettuare il login per poter utilizzare la maggior parte delle funzionalità, e questo ha funzionato fino ad ora. Tuttavia, ora, il client ha richiesto che l'utente venga disconnesso dopo una certa quantità di tempo inattivo. Il problema è che l'utente può essere ancora attivo sul computer, ma non nella mia applicazione. Per essere chiari, devo disconnettere l'utente quando è inattivo nella mia applicazione, anche se sta ancora interagendo con il desktop.C# Per quanto tempo l'utente era inattivo
primo momento ho pensato che questo sarebbe abbastanza semplice. Basta ricordare l'ora dell'ultima azione, confrontarla continuamente in un timer con l'ora corrente e disconnettere l'utente se il tempo trascorso è maggiore del tempo consentito. Comunque ho capito che scoprire l'ultima volta che l'azione potrebbe non essere così semplice ...
Naturalmente potrei copia incolla qualcosa come
Program.LastActionTime = DateTime.Now;
in ogni OnChange, OnClick, ecc, evento ... Tuttavia, non solo questa sarebbe una grande quantità di lavoro a causa delle dimensioni dell'applicazione ... Sarebbe anche una pessima pratica e sono sicuro che sarebbe stata dimenticata almeno una volta, rendendo l'intera cosa inaffidabile (E appare rotto, il bug sarebbe quasi impossibile da riprodurre!)
Quindi, c'è un modo migliore?
Questo è esattamente quello che stavo cercando! –
Questo è metà, ma cosa ti dice che il programma non è più inattivo? –