微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如果不使用任何实例成员,我可以在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;
    }
}

或者这不是线程安全的?

解决方法

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

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

原文地址:https://www.jb51.cc/csharp/91533.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐