2011-10-07 2 views
2

내 .NET 프로젝트 (WinForms)에서 agsXMPP를 사용 중입니다. 다음 코드 블록이 있습니다. 이는 클라이언트에서 메시지를받을 때마다 실행됩니다. 메시지를 수신 할 때마다이 블록이 실행되고 프로그램이 종료됩니다. : 무슨 일이 일어나는지 전혀 모르겠습니다. 도움이 되셨습니까? agsXMPP 내가, 생성 된 EXE 파일을 실행하면 편집이 *이 *** 지금,이 이벤트는 "하지 완료된 후 .NET Winform 프로그램 끝 서브에 대한 유효한 이유없이 종료

** 작동하는 스레드)

Private Sub messageReceived(ByVal sender As Object, ByVal msg As protocol.client.Message) 
    Dim chatMessage() As String 
    Static Dim Hi_ed As Integer = 0 
    chatMessage = msg.From.ToString.Split("/") 
    Dim chatSender As String = chatMessage(0) 

    If Not IsWorking Then 
     IsWorking = True 
     If Not ProcessCommands(msg.Body, chatSender) Then 
      Dim sStr As String = ParseEnglish(msg.Body) 

      Select Case sStr 
       Case "HI" 
        If Hi_ed = False Then 
         SendGTalkMsg("Hi. How do you do?", chatSender) 
         Hi_ed = True 
        Else 
         SendGTalkMsg("हाय वाई कुछ नहीं हम तो !!!", chatSender) 
        End If 
       Case "DETAILS PLEASE" 
        SendGTalkMsg(". Currently there are N no of sams running on me: :)", chatSender) 
      End Select 
     End If 
     IsWorking = False 

     Exit Sub 
    Else 
     SendGTalkMsg("I'm working right now. Please have patience.", chatSender) 
    End If 
End Sub 
를 캡슐화 ~ 레스포 nding "오류가 발생합니다. 이는 예외가 있음을 의미하지만 try catch 블록을 벗어 났음을 의미합니다. :(

이것은 내가 오류입니다.

Problem signature: 
Problem Event Name: CLR20r3 
Problem Signature 01: updatecheck.exe 
Problem Signature 02: 1.0.0.0 
Problem Signature 03: 4e8ed73e 
Problem Signature 04: mscorlib 
Problem Signature 05: 4.0.0.0 
Problem Signature 06: 4dd23522 
Problem Signature 07: 1526 
Problem Signature 08: 4f 
Problem Signature 09: System.InvalidOperationException 
OS Version: 6.1.7600.2.0.0.256.1 
Locale ID: 1033 
Additional Information 1: 0a9e 
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789 
Additional Information 3: 0a9e 
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789 

Read our privacy statement online: 
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409 

If the online privacy statement is not available, please read our privacy statement  
offline: 
C:\Windows\system32\en-US\erofflps.txt 

답변

2

음, 음.

My.Computer.Network.DownloadFile(SourceZipFile, DestinationZipFile, "<userid>", "<password>", True, 100000, True) 

이 true로 설정된 것은 바보 같은 대화 상자 때문이었습니다. 따라서 파일 다운로드 진행률 상자가 나타날 때마다 스레드가 엉망 이곤했습니다. 내가 변경했을 때 ShowUI 매개 변수가 다운로드 파일 to 거짓 모두 정상적으로 작동했습니다. :)

하지만 여기에 대한 명확한 설명이 있습니까?

0

가 가장 가능성이 스레드의 조합 처리되지 않은 예외로 인해이에 대한 처리되지 않은 예외에 대한 동작을 제어 할 수있는 방법은없는 것 같다 주 스레드를 제외한 모든 스레드는 기본 스레드 외부에서 발생할 수있는 모든 예외를 처리하는 것이 필수 ()입니다. 여기에는 주 스레드에서 종종 발생하는 비동기식 콜백 (예 : 위의 예외)이 포함됩니다. 예외 메인이 아닌 스레드에서 처리되지 않으면 응용 프로그램이 종료되고 메시지가 표시되지 않습니다.

오류를 기록하거나 디버그 추적 창에 쓰는 try ... catch 블록에서 모든 콜백 및 기타 비동기 메서드를 래핑하는 것이 좋습니다.

+2

나는 그것을 시도했다. (모든 콜백을 잡아라. ..하지만 모두 헛되다. :() –