2009-10-12 6 views
1

나는 GSM 모뎀을위한 닷넷 C#에서 윈도우 응용 프로그램을 개발했고 나는 이상한 에러를 본적했습니다이상한 처리되지 않은 예외

System.ObjectDisposedException was unhandled 
    Message="The secure parameter identifier was closed (pt: O parâmetro identificador seguro foi fechado)" 
    Source="System" 
    ObjectName="" 
    StackTrace: 
     at Microsoft.Win32.UnsafeNativeMethods.GetOverlappedResult(SafeFileHandle hFile, NativeOverlapped* lpOverlapped, Int32& lpNumberOfBytesTransferred, Boolean bWait) 
     at System.IO.Ports.SerialStream.EventLoopRunner.WaitForCommEvent() 
     at System.Threading.ThreadHelper.ThreadStart_Context(Object state) 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
     at System.Threading.ThreadHelper.ThreadStart() 
    InnerException: 

이 최근 일어난에만있다 - 내가 왜 아무 생각이 없습니다. .. 내가 SerialPort을 폐기하고 나중에 모뎀의 대답을 얻을 수 있을까 ?? - SerialPort를 처분 할 때 피해야합니까?

+0

오류 메시지의 영어가 아닌 부분에 대한 간단한 번역을 추가 할 수 있다면 도움이 될 수 있습니다. 그 정보는 유용 할 수 있습니다. 불행히도 영어를 기본 언어로 사용하는 우리 중 너무 많은 사람들이 다른 언어를 이해하지 못합니다. ( –

+0

"안전한 매개 변수 식별자가 닫혔습니다."라는 영어 메시지가 번역되었습니다. – ChrisW

답변

1

System.ObjectDisposedException 항상

0

당신은 포트의 DataReceived 이벤트에 핸들러를 등록나요) = 당신이 배치 객체를 사용하려고하는, 그래서 당신은 자신에 의해 질문에 당신이 대답 한 경우에 발생? 그렇다면 포트를 닫기 전에 등록을 취소하고 현재 실행중인 핸들러가 종료되도록 Sleep() 호출을 추가해야합니다.

관련 문제