- 创建私有静态对象
_lockobject
作为互斥锁
// 互斥锁
private static object _lockobject = new object();
- 使用
lock
执行互斥程序,参数为_lockobject
,可以确保lock
方法内程序在同一时刻只有一个运行的实例
public ActionResult Index() {
String str;
lock (_lockobject)
{
str = dosomething();
}
return View();
}
- 如果需要对互斥锁设置超时,可以使用
Monitor.TryEnter
方法
public ActionResult Index() {
String str;
if (Monitor.TryEnter(_lockobject, TimeSpan.FromSeconds(5)))
{
str = dosomething();
Monitor.Exit(_lockobject);
}
else str = "Took too long!";
return View();
}
参考文献
Visits: 10