public static void HandleNewGrades()
        {
            try
            {
                // Wait until it is safe to enter.
                mut2.WaitOne();

                while (NotesList.Count() != 0)
                {
                    // Add new grades to the average as a string
                    AddNewGrades(NotesList.Last());

                    // Remove the grades add from waiting list
                    NotesList = NotesList.FindAll(notes => notes != NotesList.Last());
                }

                // Print the 'MoyennesElevesMatieres' list items
                foreach (var eleve in MoyennesElevesMatieres)
                {
                    Console.WriteLine("\nL'eleve {0}à :", eleve.nomEleve);

                    foreach (var matiere in eleve.listMoyenneMatiere)
                    {
                        Console.Write("{0:N2} de moyenne en{1} avec les notes: ", matiere.moyenne, matiere.matiere);
                        for (int i = 0; i < matiere.notes.Count; i++)
                        {
                            float note = matiere.notes[i];
                            Console.Write("{0} ", note);
                        }
                        Console.WriteLine();
                    }
                }

                // Console.WriteLine("\nAVERAGE CALCULATED");
                // Thread.Sleep(1000);

                // Release the Mutex.
                mut2.ReleaseMutex();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }