Say I have two threads I want to be able to access an object, but not if a third thread is using it (and vice versa). What I can do is use 2 locks:
Thread A:
lock(object1)
{
// do work
}
Thread B:
lock(object2)
{
// do work
}
Thread C:
lock(object1)
{
lock(object2)
{
// do work
}
}
Is there a better way, or is this the correct way to do it?