2012-08-01 2 views
0

코드에서 잠금 (...) 또는 IF 문만 사용하면 중단 점을 만들 때 모노 도이드에서 다중 스레드 응용 프로그램을 디버깅 할 때 작동하지 않습니다. 하지만 그것은 그 키워드 앞에 breakpoint를 만든 다음 단계별 디버깅을 할 때 작동합니다. 왜? 어떻게 고쳐?모노 도이드 멀티 스레딩 응용 프로그램에서 중단 점이 작동하지 않습니다.

코드 (센서 리스너 클래스) :

static object lockAll = new object(); 
     public void OnSensorChanged(SensorEvent ev) 
     { 
      int g1 = 8; //Breakpoint in this place works 
      lock (lockAll) 
      { 
      int g2 = 8; //Breakpoint in this place isn't works 
      } 
     } 

또는 :

public void OnSensorChanged(SensorEvent ev) 
    { 
     Sensor curS = ev.Sensor; //Breakpoint in this place works 
     if (curS.Type == SensorType.Accelerometer) 
      { 
      int g2 = 8; //Breakpoint in this place isn't works 
      } 
    } 
+1

나는 이것을 받아 들인다 : – Brans

+1

어떤 코드는 어떨까요? –

+0

이제 코드 예제 – Brans

답변

0

은 내가 VS2010 IDE를 통해 monodroid와 함께 같은 문제가 발생합니다. 종종 내가 타블렛 (또는 다른 장치)에서 응용 프로그램을 강제 종료해야 IDE를 닫은 후 IDE를 다시 열고 응용 프로그램을 다시 배포합니다. 가끔 중단 점이 다음과 같이 작동하기 시작합니다. 다시 기대했다.

+0

을 볼 수 있습니다. 다른 문제입니다. Visual Studio에서 디버그 파일을 삭제할 수없는 경우. 나는 그것을 "unloker"(http://www.filehippo.com/download_unlocker/)라는 소프트웨어를 다운로드하고 그러한 박쥐 파일을 사용하여 수정한다 : @echo off D : \ MyProject \ bin \ UnlockerPortable \ App \ Unlocker \ Unlocker.exe D \ MyProject \ bin \ Debug \ Point.dll.mdb/S 디버그 \ MyProject.dll.mdb/F/Q : 오류 에코 오류 # % errorlevel %로 실패했습니다. exit/b 0 그런 다음 빌드하기 전에 VS에서 exected autamaticaly에이 박쥐를 추가 할 수 있습니다. 이 버그가 사라질 것입니다. 하지만 다른 버그입니다. – Brans