2016-08-25 2 views
0

wxProgressDialog를 사용하여 측정 사이의 전환 포트와 시간 사이의 시간을 표시합니다. 나는이 테스트를 24 시간 이상 계속하고있다. (데이터를 기록하는 동안 계속 같은 일을 반복한다.) 시간 7시에 나타납니다 Therro은 다음과 같습니다wxAssertFailure 일정 기간 동안 진행 대화 상자 표시

역 추적 (마지막으로 가장 최근의 전화), take_measurements_at_interval self.take_measurement 라인 2117, (자기 : "\ localuser \ 바탕 화면 \ 열 \ Cheyenne_Antenna_Cal_PDA_Thermal_Test.py \ 사용자 C" 파일) 파일 "C : \ 사용자 \ localuser \ 바탕 화면 \ 열 \ Cheyenne_Antenna_Cal_PDA_Thermal_Test.py", take_measurement self.Measure_Plot 라인 2185, (자기) 파일 "C : \ 사용자 \ localuser \ 바탕 화면 \ 열 \ Cheyenne_Antenna_Cal_PDA_Thermal_Test.py" , 2231 줄, Measure_Plot에서 style = wx.PD_AUTO_HIDE | wx.PD_ELAPSED_TIME | wx.PD_REMAINING_TIME) 파일 "C : \ Python27 \ lib 디렉토리의 \ 사이트 - 패키지 \ WX-2.8-MSW-유니 코드 \의 wx_windows.py"초기화에서, 라인 2951, .ProgressDialog_swiginit (자기, wxControl :: MSWCreateControl() : CreateWindowEx (.new_ProgressDialog (* args, ** kwargs)) wx._core.PyAssertionError : wxControl :: MSWCreateControl()에서 .... \ src \ msw \ control.cpp (159)에서 C++ 어설 션 "wxAssertFailure" "STATIC", 플래그 = 52000100, 전 = 00000000) 여기

이 '지연 시간'

#Giving Time for switch to toggle next port 
     progressMax = 5 
     dialog = wx.ProgressDialog("A progress box", "Time to switch", progressMax, 
            style=wx.PD_AUTO_HIDE | wx.PD_ELAPSED_TIME | wx.PD_REMAINING_TIME) 
     keepGoing = True 
     count = 0 
     while keepGoing and count < progressMax: 
      count = count + 1 
      wx.Sleep(1) 
      keepGoing = dialog.Update(count) 

     dialog.Destroy() 
에 사용되는 코드입니다 실패

코드를 5 초 동안 일시 중지하면 데이터가 기록되기 전에 스위치 하드웨어와 PNA가 안정됩니다. 이 모든 일은 일정 기간 동안 'For'루프에서 발생합니다. 누구든지 더 많은 정보가 필요하다면 나는 입증하게되어 기쁩니다.

+0

플랫폼/툴킷/OS 버전은 무엇입니까? 무슨 wx 버전? C++ 샘플로 재현 할 수 있습니까? – Igor

+0

이것은 Python 2.7, Windows 7에 있으며, C++에서 이것을 재현하려고 시도 할 것입니다. –

답변

0

장시간 실행 한 후에 창 만들기가 실패하면 Microsoft Windows에서 여전히 매우 제한된 리소스 인 Windows가 거의 실행되지 않을 가능성이 있습니다 (정확한 제한은 Windows 버전에 따라 다르지만 로그 일 수 있음). 16,384).

최상위 창은 다시 돌아 오면 정말 숨겨 질뿐 (숨겨져 있지 않기 때문에)이 모든 시간 동안 메인 이벤트 루프로 돌아 가지 않으면 이런 일이 발생할 수 있습니다.

+0

OK, 'for'루프를 사용하지 않고 'itertools.repeat (object [, times])'를 조사하고 있지만 읽는 것은 'times'기간이 끝날 때까지 계산하지 않는다는 것입니다 . 그 맞습니까?? –

+0

죄송합니다, 이것을 재구성하십시오, 나는 당신이 무슨 말을하는지 이해하지 못합니다. –