我有一个用 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-Event 也不起作用。