好的。我想有两个线程在运行。当前代码:C#多线程
public void foo()
{
lock(this)
{
while (stopThreads == false)
{
foreach (var acc in myList)
{
// process some stuff
}
}
}
}
public void bar()
{
lock(this)
{
while (stopThreads == false)
{
foreach (var acc in myList)
{
// process some stuff
}
}
}
}
两者都访问相同的List,问题是第一个线程“foo”没有释放我猜的锁;因为“bar”仅在“foo”完成时才开始。谢谢
是的,bar只会在foo完成后启动,这就是锁的工作方式,您应该提供更多关于如何让代码运行的细节。 – 2010-09-25 11:24:01
读取semaphore/mutex的定义,然后移除锁定 – 2010-09-25 11:51:21