1.使用lock,用法如下:
private
static
readonly
object
SeqLock =
new
object
();
private
void
Print()
{
lock
(SeqLock)
{
Console.WriteLine(
"test"
);
}
}
2.
Monitor.Enter()和lock相同
Monitor.Enter(obj){
//Synchronized part
}
finally
{
Monitor.Exit(obj);
}
#
TryEnter则可设置等待时间等
bool
lockTaken=
false
;
Monitor.TryEnter(obj, 500,
ref
lockTaken);//睡眠500毫秒
if
(lockTaken){
try
{
//Synchronized part
}
finally
{
Monitor.Exit(obj);
}
}
else
{
//don't aquire the lock, excute other parts
}