在ASP中,禁止在application状态中存储单线程对象,对于Visual Basic程序员开发组件来说,这是一个真正的问题。倘若可以用.NET语言(包括Visual Basic)编写自由线程组件,是否就能解决这个问题呢?只要能明白下面的内容,从某种程度上来说,确实可以做到这一点:1、只要自由线程组件提供线程同步,就可以存储该组件。2、如果利用Lock和Unlock防止线程阻塞,就可以存储单线程组件。3、application状态不能保证它的持久性,应用程序域任何时候都肯能遭到破坏,因此要保持持久性,应进行外部存储。
总的来说,由于资源的使用和伸缩性 及性能方面的潜在问题,我们不鼓励application状态中存储对象。然而,标量类型数据(例如字符串)的存储是提高性能的一个好办法,只是要小心地使用它。用户可能会认为像将Recordsets存储到application状态中这样典型的事例现在已经变得简单了,因为可以在DataSet中存储XML,但应该记住内存(虽然比较廉价)是有限的。频繁使用存储在application状态中的一组10MB数据的好处很大,而100MB就不行,这种情况在真正了解了对性能的影响之前需要进行全面的检测。
- 评论:(0)
发表评论