자주 여러 스레드에서 호출되는 정적 메서드가 포함 된 유틸리티 클래스를 개발 중입니다. 나는 메모리 사용이 시간이 지남에 따라 증가하고 있다는 것을 알아 차리고 있는데, 그래서 나는 약간의 메모리 누수가 있다고 생각한다. 문을 '사용'또는 직접 실제로 메모리를 지 웁니다 정적 메서드 내에서 폐기 전화 사용 여부를문/호출 사용 정적 메서드 내부 처리
public static int CreateNewThing(int IDofSomeDBObjectHoldingInfoToCreateNewThing)
{
using(SomeDBContext context = new SomeDBContext(connectionString))
{
SomeDBObjectHoldingInfoToCreateNewThing createNewThingyInfo = context.SomeDBObjectsHoldingInfoToCreateNewThing.First(obj => obj.ID == IDofSomeDBObjectHoldingInfoToCreateNewThing);
// Do some stuff to create the new object
// Return the ID of the newly created thingy...
return theNewThingThatWasCreated.ID;
}
}
내 질문은 :
여기에 나는이 정적 메소드 사용하고있는 패턴의 간단한 예입니다. 허락하신다면,이 애플리케이션의 전반적인 아키텍처 나 목적은 언급하지 않았지만 여기서도 최고의 패턴을 사용하고 있는지 궁금합니다. .NET에서 스레드로부터 안전한 유틸리티 클래스를 만드는 가장 좋은 방법은 무엇입니까?
"시간이 지남에 따라 메모리 사용량이 증가하고 있습니다."- 반드시 메모리 누수가 있음을 의미하지는 않습니다. 프로파일 러를 사용하여이를 확인 했습니까? 아니면 작업 관리자 만보고 계십니까? –
이것은 Windows 서비스이므로 작업 관리자를보고 있습니다. 언젠가 프로파일 러를 사용하여 오늘 체크 아웃 할 계획이지만, 처음에는 여기가 일반적인 발생인지 혹은 내가 경험하고있는 것인지 확인하기 위해 왔습니다. – pwnyexpress