C++ から呼び出されるように、MATLAB プロジェクトを DLL に展開しましたが、問題なく動作します。幸せな日々。
しかし、ユーザーが操作のキャンセルを要求した場合はどうなるでしょうか?
global
という名前の変数を作成してみましたUserAborted
。MATLAB で long 関数を実行する前に、0 に初期化します。また、次の 2 つの関数も作成しました。
function AbortIfUserRequested
global UserAborted
if (UserAborted == 1)
error('User Abort');
end
end
function UserAbortLongFunction
global UserAborted
UserAborted = 1;
end
AbortIfUserRequested
long 関数のループの反復ごとに呼び出します。私も輸出しUserAbortLongFunction
ました。
が呼び出された直後にUserAbortLongFunction
、長い関数が の呼び出しに到達しAbortIfUserRequested
、エラーがスローされると予想していました。
代わりに、long 関数は最後まで実行し続け、最後に get の値をUserAborted
変更します。
私がしたいのは、ユーザーが私に求めたときにその長い機能を中止することだけです! それを行う方法はありますか?