2009-11-06 1 views
2

asp.net 페이지/처리기에서 이미지에 액세스했습니다. 이미지에 대한 첫 번째 요청을 수행하면 이미지를 표준 크기로 크기를 조정하고 (디스크에 저장) 반환합니다. 그래서 하나만 제외하고 모든 요청을 잠글 필요가 있습니다. 이것은 이미지의 크기를 조정합니다. 이미지는 URL에서 ID로 식별되므로 하나의 이미지 (URL의 ID) 당 하나의 잠금 개체가 필요합니다. 제 질문은이 잠금 모델을 어떻게 구성 할 수 있습니까?DB에서 ASP.NET 요청 잠금 또는 행 잠금을 구성하는 방법

제 아이디어는 응용 프로그램 (응용 프로그램이 동기화 됨)에 lock 객체를 추가합니다. 이 Application.Add (Request [Id], 새 객체())와 같습니다. 및 경쟁 스레드 잠금에 사용하십시오.

이 작업은 DB의 행 잠금 또는 컬렉션의 잠금 요소와 같습니다.

재생 해 주셔서 감사합니다.

답변

1

가장 쉬운 방법은 이미지 파일을 잠그는 것입니다.

 

using (FileStream fs = new FileStream("image.file", FileMode.Create, FileAccess.Write, FileShare.None)) 
{ 

resize image here 

} 
 

두 번째 (세 번째 등) 스레드가 파일을 만들려고 할 때 예외 "프로세스가 파일을 액세스 할 수 없습니다 ..."가 throw됩니다. 그리고 나는 코드에서이 예외를 처리한다.