【发布时间】:2014-04-03 11:48:52
【问题描述】:
在以下示例中,当单击“提交”按钮时,静态变量 Count 的值会递增。但是这个操作线程安全吗?使用 Appliation 对象是进行此类操作的正确方法吗?这些问题同样适用于 Web 表单应用程序。
当我点击提交按钮时,计数似乎总是增加。
查看(剃刀):
@{
Layout = null;
}
<html>
<body>
<form>
<p>@ViewBag.BeforeCount</p>
<input type="submit" value="Submit" />
</form>
</body>
</html>
控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.BeforeCount = StaticVariableTester.Count;
StaticVariableTester.Count += 50;
return View();
}
}
静态类:
public class StaticVariableTester
{
public static int Count;
}
【问题讨论】:
-
简答:否
-
Static变量不是线程安全的。 -
Static和线程安全是正交的,请阅读线程安全。 -
@Sriram Sakthivel 谢谢 :) “程序员永远是学习者”。 :)
标签: c# asp.net multithreading