Domanda

Ho un CMS personalizzato in cui io uso un XElement statica come la mappa del sito. Quando gli aggiornamenti si verificano alla mappa, sto Sincronizzazione dei fili scrittore, ma sto facendo nulla con i lettori, semplicemente permettendo loro di afferrare il XElement quando ne hanno bisogno.

In fase di test, ho pensato che se mi è stato l'enumerazione dei XElement da un thread di lettura, mentre ho aggiornato su un altro thread di scrittura, vorrei ottenere un'eccezione. Quello non era il caso. Chiedo solo se qualcuno può spiegare a me se vedono grossi problemi con questo approccio. Non sembra come dovrebbe essere al sicuro, ma tutto il mio test finora ha indicato che si tratta.

È stato utile?

Soluzione

Usa uno System.Threading.ReaderWriterLock per controllare l'accesso al XElement. In questo modo si sincronizza tutti i lettori e tutti gli scrittori senza bloccare l'attività simultaneo in lettura.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top