aba*_*hev 6 .net c# asp.net static-methods thread-safety
如果不使用任何实例成员static,我可以在ASP.NET Pages和UserControls类中使用方法吗?即:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
或者这不是线程安全的?
是的,您可以使用静态成员 - 它们是线程安全的.每个线程将在单独的上下文中执行,因此在静态方法内创建的任何对象都只属于该线程.
如果静态方法正在访问静态字段(例如列表),则只需要担心.但在您的示例中,代码绝对是线程安全的.
| 归档时间: |
|
| 查看次数: |
3663 次 |
| 最近记录: |