Я внедрил ReaderWriterLockSlim, теперь я не хочу, чтобы он дождался блокировки. Я хочу сделать что-то еще, если замок заблокирован.Сделайте что-нибудь еще, если проведет ReadWriteSlimlock
Я рассматривал это isWriterLockHeld, но это не делает много смысла для меня, Так, если два потока приходят одновременно, и если оператор одновременно ввести один по-прежнему будет ждать в замке
вот мой код.
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();
}
Может кто-нибудь, пожалуйста, направит меня в правильном направлении.
Благодаря