线程安全方法?

时间:2012-03-01 15:47:40

标签: c# multithreading methods static thread-safety

我有一个使用以下静态方法的类:

public static Content GetContentById(int id)
{
    Content c = null;

    string sql = "SELECT QUERY";

    using (SqlDataReader dr = SqlHelper.ExecuteReader(Constants.ConnectionString, CommandType.Text, sql, new SqlParameter("@id", id)))
    {
          if (dr.HasRows && dr.Read())
          {
               c = new Content(dr.GetInt32(0));
          }
    }

    return c;
 }

现在,我已经对线程进行了一些阅读,在我看来它应该是安全的,因为它只使用局部变量而不是在全局状态下操纵对象/成员?

有人能为我确认一下吗?

编辑:包含内容构造函数

    public Content(int Id)
    {
        this.Id = Id;
    }

2 个答案:

答案 0 :(得分:1)

假设Content的构造函数没有做任何令人惊讶的事情(读取:多线程不安全),那么它看起来对我来说是线程安全的。

答案 1 :(得分:1)

您只使用本地变量,只对数据库进行读取操作。在我看来这是安全的。