Löschen der Message-Queue(Events)

  • wenn ich in einem Plugin längere Schleifen durchlaufe, werden die Eingaben der Fernbedienung weiterhin in die Queue geschrieben und nach beenden der Schleife ausgeführt. Besteht die Möglichkeit alle aufgelaufenden Events zu löschen?
    Z.Z. lasse ich die Schleife in einem Timer laufen und fange die Events einzeln in einem Event Handler ab was sehr mühselig ist. Hat jemand eine Idee?


    cu
    DarkVolli

    • Offizieller Beitrag

    Hi,


    ja die Lösung ist "ordentlich programmieren" :smiling_face:


    Man sollte die Mainloop einfach nicht ewig lange blocken. Das ist auch bei Windows und anderen GUIs nicht anders..


    Ereignissorientiert programmieren... dann passiert sowas nicht .. oder halt ggf. einen Thread starten.. aber das ist auch nicht ohne.... da muss man dann aufpassen, dass man die Threads ordentlich gesynced bekommt..


    Was ist das überhaupt genau für ein Plugin? Also eines was die enigma gui benutzt?


    Also wenn es eines ist, was die enigma gui api benutzt, dann könnte man als workaround vor der längeren Schleife eRCInput::getInstance()->lock(); aufrufen.. und danach ... ->unlock(); .. beim unlock wird dann das RC device geleert..


    cu

  • Ja, genau das habe ich gesucht - Vielen Dank!
    Es handelt sich um ein Spiele-Plugin mit der Enigma gui, ich hatte immer in den sourcen das event handling durchgesucht, auf RCInput bin ich leider nicht gekommen...


    cu
    DarkVolli