我正在使用wxProgressdialog来显示切换端口之间的时间和测量之间的时间。我正在运行这个测试超过24小时(在记录数据时反复重复同样的事情)。在第7小时出现的Therro是:
追踪(最近一次通话): 文件" C:\ Users \ localuser \ Desktop \ Thermal \ Cheyenne_Antenna_Cal_PDA_Thermal_Test.py",第2117行,在take_measurements_at_interval中 self.take_measurement(个体经营) 文件" C:\ Users \ localuser \ Desktop \ Thermal \ Cheyenne_Antenna_Cal_PDA_Thermal_Test.py",第2185行,在take_measurement中 self.Measure_Plot(个体经营) 在Measure_Plot中的文件" C:\ Users \ localuser \ Desktop \ Thermal \ Cheyenne_Antenna_Cal_PDA_Thermal_Test.py",第2231行 style = wx.PD_AUTO_HIDE | wx.PD_ELAPSED_TIME | wx.PD_REMAINING_TIME) 文件" C:\ Python27 \ lib \ site-packages \ wx-2.8-msw-unicode \ wx_windows.py",第2951行, init windows .ProgressDialog_swiginit(self, windows .new_ProgressDialog(* args,** kwargs)) wx._core.PyAssertionError:C ++断言" wxAssertFailure"在wxControl :: MSWCreateControl()中的.... \ src \ msw \ control.cpp(159)失败:CreateWindowEx(" STATIC",flags = 52000100,ex = 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稳定。所有这一切都发生在&#39; For&#39;循环一段时间。如果有人需要更多信息,我将很乐意证明。
答案 0 :(得分:0)
如果窗口创建在运行很长时间后失败,很可能你只是用完了Windows,这在Microsoft Windows下仍然是一个非常有限的资源(确切的限制取决于Windows版本,但可能像日志一样16384)。
如果您在这段时间内从未返回主事件循环,可能会发生这种情况,因为顶级窗口只有在您返回后才会被真正销毁(而不仅仅是隐藏)。