0
C#을 사용하여 asp.net을 사용하여 웹 페이지를 개발 중입니다.C#의 잠금 (객체)
중요한 코드가 있습니다. 한 번에 한 사용자 만 코드 섹션에 액세스 할 수 있습니다.
다음 코드
string doc_number = "";
try {
lock (lock1) {
doc_number = PostSalaryToSAP();
// doc_number = "";
if (doc_number.Length > 6) {
this.Result.Text = "Posting Successful For Employee id '" + cbEmpID.SelectedItem.Text.ToString() + "' With Doc_number : " + doc_number;
this.Result.ForeColor = System.Drawing.Color.Green;
this.btnPost.Enabled = false;
this.btnDelete.Enabled = false;
} else {
this.Result.Text = "Posting Failed ";
this.Result.ForeColor = System.Drawing.Color.Green;
}
}
} catch (Exception ex1) {
Result.Text = "Posting Unsuccessful ";
Result.ForeColor = System.Drawing.Color.Green;
}
을 사용했지만이 코드와이 결과는 제대로 생성되지 않아요. 일반적으로이 행은 db 테이블에 단일 레코드를 추가합니다.
doc_number = PostSalaryToSAP();
그러나이 코드를 사용하면 2 행이 추가됩니다. 내가 이해할 수없는 실제 문제는 무엇입니까? 제발 도와주세요
lock1이란 무엇입니까? 일반적으로 다음과 같습니다 : private static readonly object lock1 = new object(); – row1
저는 이것이 lock 문과 아무런 관련이 없다고 생각합니까? 귀하의 코드는 콜 스택 (callstack)보다 두 배 더 높게 실행됩니다. – Jehof