Seite 1 von 1
Was bedeutet folgende Fehlermeldung bei 'YieldIfNeeded' ?
Verfasst: Dienstag 15. Januar 2008, 22:07
von snakeseven
Hallöchen,
ist einem von euch vieleicht schon mal folgende Fehlermeldung begegnet? Kann damit nichts anfangen, aber sie taucht immer wieder auf, ohne dass ich weiß warum!?
Code: Alles auswählen
return _core_.YieldIfNeeded(*args)
PyAssertionError: C++ assertion "wxThread::IsMain()" failed at ..\..\src\msw\evtloop.cpp(244) in wxEventLoop::Dispatch(): only the main thread can process Windows messages
Grüße, Seven
Verfasst: Dienstag 15. Januar 2008, 22:25
von Nikolas
Wo taucht sie denn auf?
Verfasst: Dienstag 15. Januar 2008, 23:12
von snakeseven
Nikolas hat geschrieben:Wo taucht sie denn auf?
in einer While-Schleife:
Code: Alles auswählen
while pos0 > 0:
if self.quitt: break
wx.YieldIfNeeded()
pos1 = self.source.find('lightbluetext8',pos0)
if 'abel' in self.source[pos1:pos1+40]:
pos2 = self.source.find('abel',pos1,pos1+40)
pos3 = self.source.find(' ',pos2-2,pos2)
if pos3 > 0:
pos4 = self.source.find('</td></tr>',pos2)
pos5 = self.source.find('">',pos4-17)
label = self.source[pos5+2:pos4]
pos0 = pos1+1
auch nur sporadisch, deswegen komme ich nicht dahinter, was sie bedeutet.
Verfasst: Dienstag 15. Januar 2008, 23:25
von gerold
snakeseven hat geschrieben:Code: Alles auswählen
while pos0 > 0:
if self.quitt: break
wx.YieldIfNeeded()
pos1 = self.source.find('lightbluetext8',pos0)
...
auch nur sporadisch, deswegen komme ich nicht dahinter, was sie bedeutet.
Hallo Seven!
Der Hinweis ist >>only the main thread can process Windows messages<<. Du arbeitest hier evt. in einem Thread, der nicht die Herrschaft über die GUI hat. Nimm ``wx.CallAfter`` um den Aufruf threadübergreifend zu verpacken.
mfg
Gerold

Verfasst: Freitag 18. Januar 2008, 14:16
von snakeseven
Hi Gerold,
wieder mal ins Schwarze getroffen!
bringts
Gruß, Seven