Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

.NET メソッドの非同期呼び出し

MATLAB における .NET メソッド非同期呼び出しの処理

MATLAB® では、同期メソッドを非同期で呼び出せます。Microsoft®BeginInvoke および EndInvoke メソッドを少し変更して使用できます。詳細については、MSDN® の記事同期メソッドの非同期呼び出しを参照してください。

デリゲートを使用すると、BeginInvoke および EndInvoke メソッドを使って同期メソッドを非同期で呼び出すことができます。非同期呼び出しの開始スレッドが、結果処理のスレッドである必要がない場合は、呼び出しの完了時にコールバック メソッドを実行できます。

メモ

MATLAB はシングルスレッド アプリケーションです。したがって、MATLAB 環境で非同期呼び出しを処理すると、デッドロックが発生する可能性があります。

out および ref 型引数を指定した EndInvoke の使用

関数 EndInvoke の MATLAB デリゲート シグネチャは、デリゲートが out または ref 型の引数をもつ場合、特別なマッピング ルールに従います。マッピングの詳細は、out および ref 型の引数をもつ .NET デリゲートを参照してください。例については、EndInvoke のリファレンス ページを参照してください。

ポーリングを使用した非同期呼び出し終了時の検出

MATLAB では、メイン スレッド上でデリゲートのコールバックを実行するイベントを処理するために、MATLAB 関数 pause (または類似の関数) を呼び出します。

参考

|

外部の Web サイト