如何使用C#和COM退出MATLAB进程?

时间:2015-07-15 02:19:11

标签: c# matlab com reference-counting

我有一个从C#客户端调用MATLAB函数(displayFigure.m)的代码。每次更新.m文件时,重新运行C#程序时都不会反映更改。

public void CallMLfunc(){
    MLApp.MLApp matlab = new MLApp.MLApp();
    matlab.Feval("displayFigure", 0, out result, input);
    matlab.Quit();
}

尝试使用

终止MATLAB.exe进程
matlab.execute("quit;"); 

并将获得以下未处理的异常:System.Runtime.InteropServices.COMException

强制退出程序后,我再次重新运行它,反映出displayFigure.m(版本2)。是否有另一个退出MATLAB过程?

1 个答案:

答案 0 :(得分:0)

COM对象的进程列表中有一个MATLAB.exe。有时会有一个可以关闭的可见窗口。有时候没有。您可能有多个MATLAB.exe,特别是如果您正在调试并且MATLAB编辑器已打开,您也可以运行该实例。 ["Hello", "Great", "World"] 应终止与COM对象关联的MATLAB.exe,但如果在matlab.Quit();或断点等期间出现异常,则可能无法执行。当我遇到这个问题时,我终止了具有最高PID的MATLAB.exe。