2012-05-24 181 views
1

我正在设计一个新的ASP.NET网站(ASP.NET对我来说有点新奇,所以原谅愚蠢的问题),我想知道一个对象的生命周期,我将在Global.asax中实例化Application_Start事件(即new myClass())。我会通过某处的静态指针来引用该对象。实例化对象生命周期

所以我想这样做的原因是为了创建用于运行ASP.NET应用程序将跟踪每个用户(浏览器)一些信息控对象,即使我存储多少信息的我的数据库。换句话说,我想使用由用户键索引的会话数组,并且该数组将是myClass中的一个元素,如上所述,该元素在Global.asax的Application_Start事件中得到实例化。我会定期修剪我的阵列,以便在NN分钟后关闭或没有做任何事情的用户。

或者,这只是坚果,因为在应用程序的生命期间实例化的对象在生命周期方面不可靠。

在此先感谢!

亲切的问候, 德里克

回答

0

当你创建对象不要紧,要紧的是,你的存储对象的引用。

如果将参考放在静态变量中,只要应用程序正在运行,对象就会存活。

在Web应用程序中使用静态变量可以有用武之地,但你必须要小心,因为Web应用程序是多线程的。如果更改对象中的任何数据,则必须同步对数据的访问权限,以便一次只有一个线程可以访问它。

+0

谢谢Guffa,您的答复,是的,我很少使用静态和在那里我做我锁定他们(即锁(_static_lock),因此他们不会得到由两个线程同时击中。OK,好知道我可以这样做 – Jecxz