J'ai implémenté ReaderWriterLockSlim, maintenant je ne veux pas qu'il attende au verrou. Je veux faire autre chose si le verrou est maintenu.Faire autre chose si ReadWriteSlimlock est tenue
je considérais l'aide est isWriterLockHeld mais il ne fait sens pour moi, Comme si deux threads sont en même temps et entrer dans l'instruction if en même temps, on sera toujours en attente à l'écluse
voici mon code.
ReaderWriterLockSlim rw = GetLoadingLock(parameters);
rw = GetLoadingLock(parameters);
try
{
rw.EnterWriteLock();
item = this.retrieveCacheItem(parameters.ToString(), false);
if (item != null)
{
parameters.DataCameFromCache = true;
// if the data was found in the cache, return it immediately
return item.data;
}
else
{
try
{
object loaditem = null;
itemsLoading[parameters.ToString()] = true;
loaditem = this.retrieveDataFromStore(parameters);
return loaditem;
}
finally {
itemsLoading.Remove(parameters.ToString());
}
}
}
finally
{
rw.ExitWriteLock();
}
Quelqu'un peut-il s'il vous plaît me guider dans la bonne direction avec cela.
Merci