2011-05-12 3 views
7

우리는 첫 번째 텍스트를 추출한 다음 다양한 파일의 이미지를 추출하는 응용 프로그램을 작성하고 있습니다.QTAgent32 파일 열기

테스트 스크립트에서 텍스트를 추출하고 이미지 추출을 위해 파일을 열려고하면 다른 프로세스에서 파일을 열어두고 있음을 알 수 있습니다.

파일에 대한 모든 참조를 닫은 다음 폐기하고 null로 설정했습니다.

Process Explorer를 사용하여 열린 상태로 유지하는 것이 QTAgent32라는 것을 알게되었습니다.

이 라이브러리에서 핸들을 해제하도록 알려줄 수 있습니까? 아니면 알려진 버그이며 프로덕션 코드에 영향을주지 않습니까?

+0

코드에 QTAgent를 사용하고 있습니까? 아니면 해당 파일에 액세스하는 임의의 연관되지 않은 프로세스입니까? – soandos

+0

QTAgent32의 명령 행이란 무엇입니까? – SLaks

+0

코드에서 QTAgent를 사용하지 않습니다. – griegs

답변

3

QTAgent32는 Visual Studio의 테스트 러너입니다.

이것은 시험을 마친 것을 잊어 버린 FileStream을 의미합니다.

+0

@SLaks, 방금 라이브러리를 호출하고 여전히 같은 오류가 발생하는 Windows 응용 프로그램을 작성했습니다. 이 인스턴스에서 테스트 러너가 실행되는 이유를 알고 있습니까? – griegs

+0

단위 테스트가 있습니까? QTAgent32의 명령 행과 상위 프로세스를 점검하십시오. – SLaks

+0

유닛 테스트가 있지만 라이브러리를 호출하는 Windows 응용 프로그램에서 인스턴스화하면 안됩니다. – griegs

0

테스트를 디버그, 실행 일시 중지 및 중단 시간으로 실행 해보십시오. (이 "빈자의 프로파일 링"기술에 대한 stackoverflow 어딘가에 좋은 대답이 있습니다.)

나는이 문제의 나의 경우를 이렇게 해결했다. 첫 번째 시도에서 NetworkStream.Read으로 전화를 걸어 실행 중단을보고 놀랐습니다. 테스트가 계속 진행될 수 있도록 백그라운드 스레드에서 실행 중이었지만 분명히 테스트에 포함되지 않았습니다. 어쨌든 죽은 코드 였으므로 완전히 제거하고 VS를 다시 시작 했으므로 테스트가 원활하게 다시 실행됩니다.

+0

감사합니다. 프로젝트에 다시 돌아올 때 시도해 보겠습니다. – griegs