37 lines
561 B
Plaintext
37 lines
561 B
Plaintext
== Compliant Solution
|
|
|
|
[source,csharp]
|
|
----
|
|
class MyClass
|
|
{
|
|
private object obj = new object();
|
|
|
|
public void DoSomethingWithMonitor()
|
|
{
|
|
lock(obj) // lock() {...} is easier to use than explicit Monitor calls
|
|
{
|
|
if (IsInitialized())
|
|
{
|
|
}
|
|
}
|
|
}
|
|
|
|
private ReaderWriterLockSlim lockObj = new ReaderWriterLockSlim();
|
|
|
|
public void DoSomethingWithReaderWriteLockSlim()
|
|
{
|
|
lockObj.EnterReadLock();
|
|
try
|
|
{
|
|
if (IsInitialized())
|
|
{
|
|
}
|
|
}
|
|
finally
|
|
{
|
|
lockObj.ExitReadLock();
|
|
}
|
|
}
|
|
}
|
|
----
|