Canon の EDSDK (Eos カメラを制御するため) をセットアップしようとしていますが、User32 Get/DispatchMessagesAPI を介してコールバックによってイベント ハンドラーを処理する必要があります (少なくとも Windows では)。
イベントのディスパッチには、次のことが必要です。
- メッセージを継続的にディスパッチするためのループ
- SDK が初期化されるのと同じスレッドで発生します。
kritzikratzi の edsdk4j ライブラリで確認できるように、これには基本的に単一のスレッド化されたコマンド レシーバー/メッセージ ディスパッチャー スレッドが必要です (スレッドは66 行目に設定されています)。
Scala にはメッセージを受信するのに最適なアクターがあることを考えると (複数のスレッドからメッセージを受信することができますが、最終的にはこれを行うことができます)、Canon SDK と Windows User32 API へのシングルスレッド アクセスを行うための最良の方法は何ですか?
私はakkaに完全にオープンです(そして興味があります!)