2012-03-01 3 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

+0

'Content' 생성자에서 무슨 일이 일어나고 있습니까? – Tudor

+0

제 생성자가 값을 객체에 할당합니다. – JMacDonald

답변

1

포함하기 (읽기 : 멀티 스레딩에 대한 안전하지 않은), 다음 네, 그것은 나에게 스레드 안전을 보인다.

1

로컬 변수 만 사용 중이며 데이터베이스에서 읽기만 수행합니다. 그것은 내 의견으로는 안전합니다.