我使用过静态“帮助”方法&看到其他人使用它们。但它们在像网站这样的多线程环境中是否安全?静态方法是否总是容易受到多个线程同时进入并导致问题的影响?
你什么时候使用它们?
答案 0 :(得分:7)
是的,它们非常安全。 ASP.NET中有很多例子都有静态方法。 System.Web.HttpUtility是一个完整的类,它只包含静态方法(除了它从System.Object
继承的方法)。
要查找的最大红旗是修改共享资源(例如静态属性和/或字段)的静态代码。您可以执行此类更新并安全地对其进行编码,但每当您看到修改共享资源的代码时,它都会导致您暂停并验证它是否已正确完成。
答案 1 :(得分:4)
是的,他们可以安全。
没有副作用的“纯功能”就是一个例子。
答案 2 :(得分:4)
我用:
Application_Start
和Application_End
方法调用的静态启动和关闭方法:
Session_Start
和Application_Error
,这些方法可能无法序列化。lock