matlab コンパイラで作成したアプリケーションがあります。終わっ
たら何とかしたいです。shutdown activities
matlab でシグナルをキャッチするのは不可能に思える (またはできない) ため、使用することを確認しましたonCleanup
( Matlab: Is it possible to create signal handlers (.m scripts) )。matlab (ネイティブ) 内で動作していますが、コンパイルされたアプリケーション内では動作していません。CTRL-Cとtaskkill (でのみ動作する/f
)
でアプリケーションを終了しようとしました。どちらの場合も、onCleanup メソッドは実行されませんでした。
ここでテスト目的で
function sigtest(varargin)
remainder=onCleanup(@()save('exit.mat'));
b=1;
while true
disp(datestr(now));
a=rand(round(5*b));%to be saved
pause(10);
b=a(1);
end
経由でコンパイルした私のソースコードmcc -m -v sigtest.m
。
試しに、行を挿入しました
myexiter=addlistener(System.AppDomain.CurrentDomain,'ProcessExit',...
@(a,b)save('listexit.mat'));
2行目以降だけでなく、この.NETイベントも機能していません。