2012-03-01 94 views
2

我有如下的靜態方法的類:線程安全方法?

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; 
    } 
+0

你不認爲SQL Server中的任何東西都是全局狀態嗎? – Oded 2012-03-01 15:50:39

+0

「Content」的構造函數中發生了什麼? – Tudor 2012-03-01 15:55:53

+0

我的構造函數只是將值賦給對象。 – JMacDonald 2012-03-01 17:42:28

回答

1

假設爲內容的構造不會做任何事情奇怪(讀:不安全的多線程),然後是它看起來線程安全的給我。

1

您只使用本地變量,只對數據庫進行讀取操作。我認爲這很安全。