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只在第一次回发时触发
它显然是不安全的,因为静态变量在请求之间共享.将列表移动到特定请求所特有的某个位置,例如页面实例字段.
如果需要在回发之间传递状态,请使用ViewState或其他一些非全局机制.
| 归档时间: |
|
| 查看次数: |
1144 次 |
| 最近记录: |