1

GUI アプリケーション (wx および twisted で作成され、MS Windows で実行) を分解し、コア ロジックを取り出して、GUI 環境のない Linux サーバーに cron ジョブとして展開する必要がある状況にあります。

いくつかの wx.CallLater と wx.CallAfter を threading.timer に置き換えました。どうやらうまくいきません。元のコードは、マルチスレッド環境ではうまく動作しません。これはおそらく、基盤となるライブラリの一部がスレッド セーフではないためです。スレッド化も、おそらくツイストと同じ方法でジョブをスケジュールするわけではありません。

GUI アプリの一般的なワークフローは次のとおりです。

  1. ユーザーがボタンを切り替えて、リアルタイム データ リーダー (C で記述) を起動します。

  2. トグル ボタンが緑色に変わったら、リーダーが稼働中であることを意味します。ユーザーは、異なるリアルタイム データ タイプの切り替えに進みます

  3. 新しいデータ セットの準備が整うと、ユーザーはアプリ内の他の機能の使用を開始します。

私の質問:

  1. twisted を使って上記のワークフローを再現するにはどうすればよいですか? ステップ 2 で述べたように、twisted のどのツールを使用すると、リアルタイム データ リーダーの準備が整うのを待つことができますか?

  2. メインスレッドですべてが「起こる」のでしょうか?

4

1 に答える 1

1

twisted を使って上記のワークフローを再現するにはどうすればよいですか? ステップ 2 で述べたように、リアルタイム データ リーダーの準備が整うのを待つことができるツイストのツールは何ですか?

reactor.callLater- http://twistedmatrix.com/documents/current/core/howto/time.html

メインスレッドですべてが「起こる」のでしょうか?

はい - http://twistedmatrix.com/documents/current/core/howto/reactor-basics.html

于 2013-02-28T18:18:01.880 に答える