有2个班
class A : class Parent
{
public void Draw()
}
class B : class Parent
{
public void Draw()
}
并且有必要同步这2个线程,以便方法严格地一个一个执行。(或至少到最后)Parent 类有一个同步对象。Draw方法是这样实现的
public void Draw()
{
while(true)
{
lock(obj)
{
//Рисуем объект
}
}
}
在我看来,线程应该已经执行,尽管不是一个一个地执行,而是执行到最后,只有在那之后,另一个线程(或同一个线程)才应该启动。事实上,事实证明这些进程相互干扰
class Parent
{
public object obj = new object();
}
线程类:
class Game
{
public void Start()
{
A first = new A();
B second = new B();
Thread doRoad = new Thread(A.Draw);
Thread doAuto = new Thread(B.Draw);
A.Start();
B.Start();
}
}
从评论中的讨论来看,每个对象都有自己的实例
obj。因此,没有同步:毕竟,不同的对象各自以自己的方式同步obj!使它
obj成为基类的静态字段。