这个静态变量线程在ASP.net中是否安全c#

use*_*104 -1 c# asp.net data-binding thread-safety

我知道在这里已经多次询问过这种事情,但我仍然没有完全理解ASP中的线程安全性.

C#:Where Util是一个静态类,而List是一个静态List.

Util.theList= new List<Object>();
 Util.theList.Add(someObject);
Run Code Online (Sandbox Code Playgroud)

页面加载一次,然后一秒钟后(POSTACK后1秒)填充Util.theList并重新加载页面以与新填充的列表数据绑定:

this.Repeater.DataSource = Util.theList;
            this.Repeater.DataBind();
Run Code Online (Sandbox Code Playgroud)

每次填充List时,它都是INSTANTIATED:

Util.theList= new List<Object>(); 
Run Code Online (Sandbox Code Playgroud)

如果这不是线程安全的,我怎样才能使其线程安全?我不能让列表非静态并且在同一页面上,因为一个单独的问题,如果数据绑定在page_load上,数据每次都会绑定: OnDataBind只在第一次回发时触发

usr*_*usr 6

它显然是不安全的,因为静态变量在请求之间共享.将列表移动到特定请求所特有的某个位置,例如页面实例字段.

如果需要在回发之间传递状态,请使用ViewState或其他一些非全局机制.