c# – ASP.NET代码隐藏类中的静态方法是否是非线程安全的?

如果不使用任何实例成员,我可以在ASP.NET Pages和UserControls类中使用静态方法吗?即: @H_502_2@protected void gridView_PageIndexChanging(object sender,GridViewPageEventArgs e) { gridStatement.DataSource = CreateDataSource(); gridStatement.PageIndex = e.NewPageIndex; gridStatement.DataBind(); } private static DataTable CreateDataSource() { using (var command = new sqlCommand("SELECT foobar")) { var table = new DataTable(); new sqlDataAdapter(command).Fill(table); return table; } }

或者这不是线程安全的?

解决方法

是的,您可以使用静态成员 – 它们是线程安全的.每个线程将在单独的上下文中执行,因此在静态方法内创建的任何对象都只属于该线程.

如果静态方法正在访问静态字段(例如列表),则只需要担心.但在您的示例中,代码绝对是线程安全的.

相关文章

在项目中使用SharpZipLib压缩文件夹的时候,遇到如果目录较深,则压缩包中的文件夹同样比较深的问题。比...
项目需要,几十万张照片需要计算出每个照片的特征值(调用C++编写的DLL)。 业务流程:选择照片...
var array = new byte[4]; var i = Encoding.UTF8.GetBytes(100.ToString("x2"));//...
其实很简单,因为Combox的Item是一个K/V的object,那么就可以把它的items转换成IEnumerable<Dic...
把.net4.6安装包打包进安装程序。 关键脚本如下: 头部引用字符串对比库 !include "WordFunc....
项目需求(Winform)可以批量打印某个模板,经过百度和摸索,使用iTextSharp+ZXing.NetʿreeSp...