Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么更好:静态变量V.S.Asp.NET应用程序会话?_Asp.net_Global Variables_Static Members - Fatal编程技术网

什么更好:静态变量V.S.Asp.NET应用程序会话?

什么更好:静态变量V.S.Asp.NET应用程序会话?,asp.net,global-variables,static-members,Asp.net,Global Variables,Static Members,假设您希望在ASP.NET web应用程序中的所有线程/会话之间共享某些资源,如类或变量。什么更好 1) 对静态变量具有线程安全访问器的静态变量 2) 还是ASP.NET应用程序会话变量?如果只有其中一个变量,则差别不大 如果有多个变量,则应使用静态变量,而不是Application变量。Application.Lock方法将锁定所有Application变量,同时您可以为静态变量使用单独的同步标识符,以便每个锁只影响访问该特定变量的代码。这是一种常见的场景,您需要浏览多个页面并收集数据。我将在

假设您希望在ASP.NET web应用程序中的所有线程/会话之间共享某些资源,如类或变量。什么更好

1) 对静态变量具有线程安全访问器的静态变量


2) 还是ASP.NET应用程序会话变量?

如果只有其中一个变量,则差别不大


如果有多个变量,则应使用静态变量,而不是
Application
变量。
Application.Lock
方法将锁定所有
Application
变量,同时您可以为静态变量使用单独的同步标识符,以便每个锁只影响访问该特定变量的代码。

这是一种常见的场景,您需要浏览多个页面并收集数据。我将在这个场景中使用会话对象。当整个应用程序需要相同的对象时,应该使用静态变量


如果要保留的值取决于用户,则使用会话

这是真的,只有当您要存储整个会话的值时,才应使用会话变量,但是,如果您希望初始化变量并在表单之间使用,并且如果在表单之间更改,则同一对象的整个应用程序都应使用静态变量。

静态成员将提供更好的性能,但缺点是它们不是线程安全的:

建议将数据存储在应用程序类的静态成员中,而不是存储在应用程序对象中。这会提高性能,因为访问静态变量的速度比访问应用程序字典中的项快

发件人:

以及:


这是一个重复的啊好吧。。。我没看到。。。那么,我应该做什么来结束这个问题呢?那么,如果该站点位于web场中,该怎么办呢?你有这样一个例子吗?@Choco:那么,当你在服务器之间发送数据时,你实际上不能共享同一个对象。这里有一篇文章概述了这些选项: