2008-10-16 7 views
2

.net C# 콘솔 응용 프로그램 (서비스 아님)이 있습니다. 기본적으로 웹 서비스에 연결하고, 일부 XML 파일을 가져 와서 드라이브의 몇 위치에 파일을 복사하고, XML의 유효성을 검사하고, 처리하고, 다른 웹 서비스에 이러한 개체를 보냅니다.C# 콘솔 종료 후 메모리에 응용 프로그램이 여전히 있습니다.

그러나 메인 메서드가 있고 콘솔 창이 닫히면 작업 관리자에서 프로세스를 볼 수 있습니다.

I 시도

누구 단서 등을 가지고 ...있는 ApplicationException을 잡으려고 시도와 주요 방법의 모든 주변, 앱이 모든 것이 원활 그렇지 않으면 작동하더라도 충돌 난 아직도 왜에 관해서는 아무것도 없어 결함이있는 부분을 확인하기 시작하는 위치는 어디입니까?

+0

그리고 메모리의 응용 프로그램이 YourExe.vshost.exe가 아닌 것이 확실합니까? :) – OregonGhost

+0

하하, 그게 재밌을거야 :) – leppie

+0

그 재미. 사물은 항상 한 번 각 사람에게 새로운 있으며,이 사이트에 대해 물어 완벽하게 존경할만한. –

답변

4

스레드 사용 및 비동기 호출을 살펴보십시오.

+0

그건 문제가되었습니다 ... 나는 webservice 연결에 대한 비동기 호출을 간과했습니다 ... 감사합니다. – scoob

2

콘솔 창이 닫힌 경우 실제로 프로세스가 계속 실행중인 것은 매우 이상한 것 같습니다. Visual Studio 디버거에서 연결할 수 있습니까? (분명히 디버그 빌드.)

아직 실행중인 이전 실행이 아닌 것은 확실합니까?

1

응용 프로그램에는 거의 종료되지 않은 스레드가 있습니다. Jon이 말했듯이 디버거에 연결하여 어떤 스레드가 살아 있는지 확인합니다.

1

모든 다른 답변이 제안으로 당신은 아마 느린 스레드를해야합니까하지만 반드시 명시 적으로 생성 한, 당신은 폐기 또는 개체 중 하나 이상에 비슷한 호출 할 필요가 있습니다

2

당신이 만약 응용 프로그램을 디버깅하는 중 Visual Studio에서 마지막에 .vshost.exe를 사용하여 응용 프로그램과 비슷한 호스트 exe를 만드는 상황을 보았습니다. 더 나은 디버깅 경험을 위해 앱을 제어합니다. 이 호스트 exe는 프로그램 디버깅이 끝나면 대기하고 준비가되므로 새로운 디버그 세션을 빨리 시작할 수 있습니다.

이 exe가 주위에 걸려 있지 않습니까?

디버깅하지 않고 응용 프로그램을 실행하면 여전히 그 주위에 응답합니까?

관련 문제