我有一个c#控制台应用程序 .
该计划非常简单 . 它只是打开一个Matlab应用程序并指定我想运行的m文件的目录,提供一个参数(代码如下) . m文件中的代码基本上将一些数据上传到数据库 . 之后,将根据上载到数据库的数据创建Excel报告 .
我将此任务安排在凌晨4点运行 . 该代码在前两个月运行良好 . 但是(没有任何改变我知道)代码不起作用 . 我早上来看它已经打开了一个matlab实例并且它已经改变了matlab目录,但它似乎没有运行matlab函数 . 奇怪的是,c#代码然后运行excel代码,重新编译数据库中没有数据 . 当我进入并手动运行代码虽然代码工作正常 . 我不知道发生了什么或如何找出发生了什么?
在Windows预定的任务中,消息“操作已成功完成 . (0x0)
public void CalculateFundDrift()
{
try
{
// create matlab instance
_matlab = new MLApp.MLApp();
// change to the directory where the function is located
_matlab.Execute(@"cd c:\my_directory\");
// define the output
object result = null;
// call the matlab function upload_data
_matlab.Feval("my_func_name", 0, out result, "my_para");
// quit matlab
Console.WriteLine(Environment.NewLine + "Closing Matlab");
_matlab.Quit();
}
catch(Exception ex)
{
_matlab.Quit();
throw;
}
}
Update
运行代码时我没注意的一件事是它打开了一个matlab命令窗口(看起来更像是一个文本文件) . 早上,当我进入一个已经开放的实际matlab应用程序时 .