完全非同期モード
 
導入された関数:
完全非同期モードは、Creo TOOLKIT アプリケーションが Creo+ からの要求を処理する方法を除けば単純非同期モードと同じです。単純非同期モードの場合、このような要求を処理することができません。完全非同期モードの場合、アプリケーションは、Creo+ から到着するメッセージを "聞く" 制御ループを実装する必要があります。その結果、Creo+ は、メニューボタンや通知のコールバック関数を含む、アプリケーション内の関数を呼び出すことができます。
完全非同期モードで実行しているアプリケーションの制御ループは、引数を使用しない関数 ProEventProcess() の呼び出しを含む必要があります。この関数は、同期モードと似た方法で Creo+ のメッセージに応答します。たとえば、アプリケーションによって追加されたメニューボタンをユーザーが選択すると、ProEventProcess() はコールバック関数の呼び出しを処理し、その呼び出しが完了すると復帰します(メニューボタンの追加およびコールバック関数の詳細については、ユーザーインタフェース: メニュー、コマンド、ポップアップメニューのセクションを参照してください)。
完全非同期モードのアプリケーションでは、イベント処理ループを自分で記述する代わりに、関数 ProAsynchronousEventLoop() で済ませることもできます。この関数を呼び出すと、アプリケーションは Creo+ からイベントが渡されるのを待ちます。アプリケーションが待っている間、その他の処理が行われません。ProAsynchronousEventLoopInterrupt()Creo TOOLKIT コールバック処理から呼び出されるか、Creo+ が終了していることをアプリケーションが検出するまで、ループは続行します。
完全非同期アプリケーションにおいて、Creo+ プロセスの終了イベントの受け取りが必要になる場合があります。特に、Creo+ が実行されていない状況では、制御ループは Creo+ メッセージをリッスンし続ける必要はありません。関数 ProTermFuncSet() は、Creo+ の終了時に実行する終了処理を関連付けます。終了処理については、ProTerminationAction 型の関数ポインタを使用して ProTermFuncSet() の入力にユーザー関数を指定します。終了処理への入力には、次のいずれかの終了のタイプを使用します。
PROTERM_EXIT - 正常終了 (ユーザーがメニューの「終了」(Exit) を選択する)
PROTERM_ABNORMAL - エラーステータスで終了します。
PROTERM_SIGNAL - 重大シグナルが生成されます。
アプリケーションは終了タイプを解釈し、適切な処理を実行します。
これは役に立ちましたか?