C'est une usine à gaz ce code, au lieu de créer une section citique utilisée par les readers et les writers, on créé 3 événements.
Effectivement tous les readers peuvent lire simultanément. Ceci dit, le temps de lock/unlock d'une section critique est très très rapide (beaucoup plus qu'un Event et son appel WaitForSingleEvent).