GUI アプリケーション (wx および twisted で作成され、MS Windows で実行) を分解し、コア ロジックを取り出して、GUI 環境のない Linux サーバーに cron ジョブとして展開する必要がある状況にあります。
いくつかの wx.CallLater と wx.CallAfter を threading.timer に置き換えました。どうやらうまくいきません。元のコードは、マルチスレッド環境ではうまく動作しません。これはおそらく、基盤となるライブラリの一部がスレッド セーフではないためです。スレッド化も、おそらくツイストと同じ方法でジョブをスケジュールするわけではありません。
GUI アプリの一般的なワークフローは次のとおりです。
ユーザーがボタンを切り替えて、リアルタイム データ リーダー (C で記述) を起動します。
トグル ボタンが緑色に変わったら、リーダーが稼働中であることを意味します。ユーザーは、異なるリアルタイム データ タイプの切り替えに進みます
新しいデータ セットの準備が整うと、ユーザーはアプリ内の他の機能の使用を開始します。
私の質問:
twisted を使って上記のワークフローを再現するにはどうすればよいですか? ステップ 2 で述べたように、twisted のどのツールを使用すると、リアルタイム データ リーダーの準備が整うのを待つことができますか?
メインスレッドですべてが「起こる」のでしょうか?