ฉันค่อนข้างใหม่กับ python นี่คือคำถามของฉัน

ใน main.py ฉันเริ่มต้นสองคลาสและเว็บเซอร์ของพายุทอร์นาโด:

plotter = Plotter(config=Config)

plotter_thread = PlotterThread(config=Config, plotter=plotter)
plotter_thread.daemon = True
plotter_thread.start()

handler = [
    (r"/", MainHandler),
    (r"/upload", UploadHandler, dict(config=Config)),
    (r"/uploads/(.*)", tornado.web.StaticFileHandler, {"path": Config.uploads_dir}),
    (r"/ws", WebsocketHandler, dict(plotter_thread=plotter_thread)),
    (r"/(.*)", tornado.web.StaticFileHandler, {"path": "./web/build"})
]
settings = dict(
    debug=True,
    autoreload=True,
    template_path=os.path.join(os.path.dirname(__file__), 'web/build'),
    static_path=os.path.join(os.path.dirname(__file__), 'web/build/static')
)
application = tornado.web.Application(handler, **settings)
application.listen(Config.webserver_port)

นี้กำลังดำเนินไปด้วยดี ในคลาส Plotter ฉันกำลังนำเข้าคลาส WebsocketHandler ฉันต้องการใช้วิธี WebsocketHandler.send_position

def move_to_norm(self, x_norm, y_norm, pen=-1, brake=False):
    WebsocketHandler.send_position(x_norm, y_norm, pen)
    motor_b_target, motor_c_target = self.motor_targets_from_norm_coords(x_norm, y_norm)
    self.move_to_targets((motor_b_target, motor_c_target), pen, brake)

ในนั้น. ทุกครั้งที่ฉันเรียกใช้เมธอด move_to_norm ของคลาส Plotter ฉันจะได้รับข้อผิดพลาด:

RuntimeError: ไม่มีการวนซ้ำเหตุการณ์ปัจจุบันในเธรด 'Thread-1'

และไม่รู้ว่าทำไม!

ฉันมีพฤติกรรมเช่นเดียวกันเมื่อฉันเรียกเมธอด WebsocketHandler.send_message ในคลาส PlotterThread

ฉันเข้าใจผิด Threading หรือเกี่ยวกับพายุทอร์นาโด?

ไม่พบคำตอบ