private void F_Report_Load(object sender, EventArgs e) { repository = ProjectRepository.getInstance(); reportRepository = ReportRepository.getInstance(); this.dtp_from.Value = new DateTime(repository.currentYear, repository.currentMonth, 1); this.dtp_to.Value = new DateTime(repository.currentYear, repository.currentMonth, DateTime.DaysInMonth(repository.currentYear, repository.currentMonth)); loadReport(); }
// La méthode qui va nous permettre de récupérer l’unique instance de notre singleton. // La méthode doit être statique pour être appelé depuis le nom de la classe maClasse.getInstance(); public static ReportRepository getInstance() { //lock permet de s’assurer qu’un thread n’entre pas dans une section critique du code pendant qu’un autre thread s’y trouve. //Si un autre thread tente d’entrer dans un code verrouillé, il attendra, bloquera, jusqu’à ce que l’objet soit libéré. lock (myLock) { // Si on demande une instance qui n’existe pas, alors on crée notre RessourceManager. if (instance == null) instance = new ReportRepository(); // Dans tous les cas on retourne l’unique instance de notre RessourceManager. return instance; } }