【发布时间】:2012-12-17 21:07:29
【问题描述】:
我有一个使用 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 也不起作用。
【问题讨论】:
标签: windows matlab windows-7 signals matlab-compiler