Ich lese eine Nachricht von einem Socket mit C ++ Code und versuche, sie interaktiv mit matplotlib
zu plotten, aber es scheint, dass Python-Code den Haupt-Thread blockiert, egal, ob ich show()
oder ion()
und% verwende. Code%. draw()
und ion()
werden in Python nicht blockiert.
Irgendeine Idee, wie man interaktiv mit draw()
im C ++ Code zeichnet?
Ein Beispiel wäre wirklich gut.
Vielen Dank.
Sie können auch versuchen, einen neuen Thread zu erstellen, der den Aufruf an die Blocking-Funktion, so dass es IO in Ihrem Hauptprogramm nicht blockiert Schleife. Verwenden Sie ein Array von Thread-Objekten und durchlaufen Sie diese, um ein nicht verwendetes Objekt zu finden Erstellen Sie einen Thread, um die blockierenden Aufrufe auszuführen, und führen Sie einen anderen Thread aus das verbindet sie, wenn sie abgeschlossen sind.
Dieser Code ist ein kurzer Schlag - zusammen habe ich getan, um zu demonstrieren, was ich meine Verwenden von Threads, um Pseudo-asynchrones Verhalten für Blockierungsfunktionen zu erhalten ... Ich habe es nicht sehr gut zusammengestellt oder durchgekämmt, es ist einfach zu zeigen Sie, wie Sie dies erreichen.
%Vor%Auf diese Weise können Sie während des Zeichnens weiterhin Eingaben akzeptieren.
~~ Korrigiert, dass der obige Code tatsächlich kompiliert wird, stellen Sie sicher, dass -lpthread hinzugefügt wird
Tags und Links python c++ matplotlib