All the tutorials/examples I have seen regarding C# lock
are using a class member variable for locking.
Instead of using a class member variable, I want to use a local variable for locking the execution of a particular section of the code.
My Sample Code:
class TestClass
{
public static int TestMethod()
{
// some code
foreach (var example in Examples)
{
//some code...
object myLock = new object(); // QUESTION: Is this valid?
Parallel.ForEach(AllChunks, (chunk) =>
{
// some code...
lock(myLock)
{
// do some GPU related activities
}
}
}
return 0;
}
}
In the above code, I am using myLock
(a local variable inside TestMethod()
) to lock the execution of a particular section of the code.
QUESTION: Is this implementation valid and correct? My lock is not readonly
(as suggested in tutorials).
CodePudding user response:
Yes, it's perfectly fine.
(Sorry this answer is so short, but there is nothing else to say really)