Wie benutzt du denn die Monitore?
Code:
lock (x)
{
DoSomething();
}
ist ja gleichbedeutend mit
Code:
System.Object obj = (System.Object)x;
System.Threading.Monitor.Enter(obj);
try
{
DoSomething();
}
finally
{
System.Threading.Monitor.Exit(obj);
}
Von daher ist lock im Normalfall ja einfacher und weniger fehleranfällig anzuwenden.