好的。我想有兩個線程在運行。當前代碼: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