2010-09-07 72 views
1

如果我有两个Synclocks.NET的SyncLock为了僵局

synclock a 
    synclock b 
    end synclock 
end synclock 

我在陷入僵局的危险,如果我从来没有

synclock b 
    synclock a 
    end synclock 
end synclock 

在我的代码,但我做的SyncLock上a或b随机?

回答

3

只要你总是锁定一个b之前,那么你会没事的。

+0

true,但我想知道的是,如果a始终被锁定在函数1中,并且b始终被锁定在函数2中,并且synclock a,b在函数3中并且每个函数都在不同的线程上运行,还行吗? – 2010-09-07 18:59:10

+0

难以察觉的情况是只锁定b的代码,然后在锁定a的深层嵌套代码中跳出。 – 2010-09-07 19:01:35