方法的本地 C# 锁?
Local C# lock for a method?
我看到的关于 C# lock
的所有 tutorials/示例都使用 class 成员变量进行锁定。
我不想使用 class 成员变量,而是想使用局部变量来锁定代码特定部分的执行。
我的示例代码:
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;
}
}
在上面的代码中,我使用 myLock
(TestMethod()
中的局部变量)来锁定代码特定部分的执行。
问题:此实现是否有效且正确?我的锁不是 readonly
(如教程中所建议)。
是的,非常好。
(很抱歉这个回答很短,但真的没什么好说的)
我看到的关于 C# lock
的所有 tutorials/示例都使用 class 成员变量进行锁定。
我不想使用 class 成员变量,而是想使用局部变量来锁定代码特定部分的执行。
我的示例代码:
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;
}
}
在上面的代码中,我使用 myLock
(TestMethod()
中的局部变量)来锁定代码特定部分的执行。
问题:此实现是否有效且正确?我的锁不是 readonly
(如教程中所建议)。
是的,非常好。
(很抱歉这个回答很短,但真的没什么好说的)