데이터 테이블을 반환하는 GetAlertData()
함수가 있습니다. 디버그 모드에서디버그 모드에서 함수 위에 setp 할 때 프로그램이 다르게 실행됩니다.
var dt = GetAlertData()
행동 :
사례 1 : 나는 그것을 호출 내가 F11 모든 시간을하고 GetAlertData 기능에 갈 때, 모두가 잘 작동하고 나는 올바른 테이블을 얻을
사례 2 :이 함수에서 F10을 수행하고 단계를 넘기면 GetAlertData는 모든 값이 0으로 채워진 테이블을 반환합니다 (잘못되었습니다). (내 테이블의 열은 모두 float 데이터 유형입니다.)
해제 모드에서 디버그 모드에서 F10 키를 누르는 것과 같은 동작을합니다. 즉 다시 0으로 표시됩니다.
이유가 무엇인지에 대한 아이디어 또는 이유를 찾을 수있는 방법은 무엇입니까? 감사합니다 ..
편집 : 내 GetAlertData 기능이 같은 것입니다 ..
internal static DataSet GetAlertData()
{
using (var sqlConnection = new SqlConnection(Constants.ConnectionString))
{
const string sproc = @"[spo_GetAlertData]";
var cmd = new SqlCommand(sproc, sqlConnection) {CommandType = CommandType.StoredProcedure};
cmd.Parameters.Add("@TimeWindow", SqlDbType.Int);
cmd.Parameters["@TimeWindow"].Value =2
cmd.Parameters.Add("@ThresholdTime", SqlDbType.Int);
cmd.Parameters["@ThresholdTime"].Value = 2
var dsAnalysis = new DataSet();
var da = new SqlDataAdapter(cmd);
da.Fill(dsAnalysis);
if (dsAnalysis.Tables.Count > 0 && dsAnalysis.Tables[0].Rows.Count > 0)
return dsAnalysis;
return null;
}
}
방법이 보이나요 시나리오? 시각화 프로그램에? 아니면 디버거 지역 주민입니까? 시각화 프로그램의 – leppie
.. –
왜 메소드를 정적으로 만들려고 결정 했습니까?이 유형의 코드는 대개 인스턴스 기반 (비 정적)으로 구현됩니다. 단순히 인스턴스 메소드를 만들면 잠재적 인 스레딩 문제가 해결 될 수 있습니다. 또한 잠김 (_synchObj)을 통해 동기화를 위해 동기화를 수행하십시오. –