2009-08-18 8 views
0

WPF 및 WF로 작성된 Windows 응용 프로그램과 Quickbooks API를 통해 Quickbooks의 로컬 복사본과 외부 웹 서비스도 상호 작용합니다.종료 후 EXE가 작업 관리자에 남아 있습니다.

모든 것이 잘 작동하지만 Windows 응용 프로그램과 Quickbooks를 종료 한 후에도 문제가 발생하더라도 Windows 응용 프로그램 실행 파일은 작업 관리자에 계속 표시됩니다.

누구든지이 문제를 해결할 수있는 방법을 알고 있습니까? 그냥 추측

덕분에, badallen

+0

두 번 확인하기 만하면 * appname * .vshost.exe가 아닌 실행 가능한 독립 실행 형 실행 파일이라고 확신하십니까? –

+1

나는 응용 프로그램을 디버깅하려고합니다. "종료"(메인 윈도우를 닫음) 한 후에 디버거를 깨서 지금은 보이지 않는 응용 프로그램이 무엇을하는지보십시오. 자세한 스택 추적을 얻으려면 Microsoft 기호 서버를 사용하는 것이 좋습니다. 혼자의 설명에서 문제가 무엇인지 추측하기는 꽤 어렵습니다. –

+1

주 응용 프로그램이 종료 될 때 백그라운드 스레드가 아닌 스레드가 멈추지 않는지 확인하는 것이 좋습니다. –

답변

0

하지만 나는 그들의 Dispose() 전화에 매달려 당신의 WF 또는 QuickBooks에 API에 보이는 것. 때로는 네트워크 API가 닫히고 나가는 것보다 제대로 정리하기가 너무 힘듭니다.

이 문제를 처리하는 한 가지 방법은 시간 제한이있는 bg 스레드를 사용하는 것입니다. 다음

 Action close = api.Dispose; 
     var ar = close.BeginInvoke(cb => close.EndInvoke(cb), null); 
     ar.AsyncWaitHandle.WaitOne(500); 
관련 문제