P
pokémon
Question:
Is this thread-safe:
ReaderWriterLock rwl = new ReaderWriterLock();
Queue q = new Queue();
public int GetCount() {
int val = 0;
try {
rwl.AcquireReaderLock(Timeout.Infinite);
val = q.Count;
} finally {
rwl.ReleaseReaderLock();
}
return val;
}
Or do I need to do:
public int GetCount() {
int val = 0;
try {
rwl.AcquireReaderLock(Timeout.Infinite);
lock(q.SyncRoot) {
val = q.Count;
}
} finally {
rwl.ReleaseReaderLock();
}
return val;
}
Is this thread-safe:
ReaderWriterLock rwl = new ReaderWriterLock();
Queue q = new Queue();
public int GetCount() {
int val = 0;
try {
rwl.AcquireReaderLock(Timeout.Infinite);
val = q.Count;
} finally {
rwl.ReleaseReaderLock();
}
return val;
}
Or do I need to do:
public int GetCount() {
int val = 0;
try {
rwl.AcquireReaderLock(Timeout.Infinite);
lock(q.SyncRoot) {
val = q.Count;
}
} finally {
rwl.ReleaseReaderLock();
}
return val;
}