Bonjour,
je suis en train de développer un singleton permettant de démarrer, terminer ou rejoindre une conférence.
Ce singleton possède une méthode DemarrerRejoindreConference qui permet de rejoindre une conférence si une est déjà en cours ou d'en démarrer une nouvelle dans le cas contraire.
Je veux que cette méthode soient threadsafe. Pour le moment, j'ai utilisé l'instruction lock pour verrouiller l'accès à la méthode.
Cette méthode écrit des données dans un fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 /// <summary> /// Obtient ou définit la conférence courante /// </summary> public Conference CurrentConference { get; private set; } /// <summary> /// Démarrer ou rejoindre une conférence /// </summary> public Conference DemarrerRejoindreConference() { lock (m_LockConference) { if (this.CurrentConference == null) { // Aucune conférence n'est en cours, création d'une nouvelle conférence this.CurrentConference = new Conference(); // Initialisation du fichier de conférence WriteInFile(GetFile(conference), GetTexte(conference)); } return this.CurrentConference; } }
Hors, j'ai lu que l'utilisation de lock devait être réservé pour des opérations atomiques. Vu que j'écris dans un fichier, pensez-vous que l'utilisation de lock est adaptée ?
Est-ce que l'écriture dans le fichier doit être asynchrone selon vous ?
Merci pour votre aide.
Etienne
Partager