我有一个私有静态字段,用于同步(锁定)。现在我有两个我不想同时执行的功能。所以我这样做:C#线程和同步
public class Synchronization
{
private static object _lock = new object();
public void MethodA()
{
lock (_lock)
{
Console.WriteLine("I shouldn't execute with MethodB");
}
}
public void MethodB()
{
lock (_lock)
{
Console.WriteLine("I shouldn't execute with MethodA");
}
}
}
我知道,锁定的对象将防止单一功能的并行执行,但将同样的工作,如果我使用在同时运行不同的方法相同的锁定对象?简单地说,放任何其他线程可以锁定另一个函数中已经锁定的对象?
为什么不干脆自己试一试? – 2011-01-26 09:27:49
另请注意,通过这种方式,您已经同步了该类的每个实例。如果你不想这样做,请删除锁对象的“静态”部分。 – 2011-01-26 09:30:08
@Andreas MT理论与实践很难 - 这不是一个有用的建议。 – 2011-01-26 09:30:08