Les files d'attente de messages sont un moyen de résoudre votre problème.
Si vous souhaitez alimenter votre machine d'état avec des événements externes provenant d'autres threads, ils peuvent écrire ces événements dans une file d'attente de messages qui sera lue par votre machine d'état.
Si vous souhaitez que d'autres threads se déclenchent sur les actions de votre machine d'état, il peut écrire dans différentes files d'attente de messages associées chacune à un thread qui lira à partir de sa MQ. Un inconvénient est que les événements sont classés par ordre chronologique. Si votre machine d'état n'est pas dans l'ambiance de gérer l'événement, il suffit de lire la file d'attente, vous devez décider quoi faire avec cet événement: détruisez-le, remettez-le en attente, souvenez-vous pour un usage futur ...
J'ai lu avec intérêt votre dernier paragraphe sur l'ordre des événements. Pouvez-vous par hasard me diriger vers des exemples, des sources ou des articles sur la manipulation de la file d'attente d'événements dans les machines d'état? – BiAiB