Initializing MATLAB runtime from c# app

31 次查看(过去 30 天)
I have a c# windows form app that launches standalone MATLAB exes built with compiler.build.standaloneApplication. However launching these exes takes quite a long time since MATLAB runtime needs to be initialized (30 seconds to minutes for some apps). Is there a way I can preload the runtime when the c# app is launched to reduce subsequent launch times of the standalone apps?

回答(1 个)

Prannoy
Prannoy 2023-6-30
Yes, you can preload the MATLAB Runtime when your C# app is launched to reduce subsequent launch times of the standalone MATLAB apps. Preloading the MATLAB Runtime ensures that it is initialized and ready to be used by the standalone apps when they are launched.
Here's an example of how you can preload the MATLAB Runtime in your C# app:
  1. Add a reference to the MathWorks.MATLAB.NET.Arrays assembly in your C# project.
  2. In your C# code, before launching the standalone MATLAB app, you can preload the MATLAB Runtime by creating an instance of the MathWorks.MATLAB.NET.Utility.MWMCR class and calling the Initialize method. This initializes the MATLAB Runtime and reduces the subsequent launch times of the standalone apps.
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
// Preload the MATLAB Runtime
MWMCR mcr = new MWMCR();
mcr.Initialize();
3. After preloading the MATLAB Runtime, you can launch the standalone MATLAB app as usual.
  1 个评论
Chase
Chase 2023-6-30
编辑:Chase 2023-7-6
@Prannoy Thanks for your response. When trying to create an instance of MWMCR, I get this error
Note: THIS CONSTRUCTOR SHOULD ONLY BE REFERENCED FROM COMPILER GENERATED CODE.
CS1729: 'MWMCR' does not contain a constructor that takes 0 arguments
I have a reference to MWArray in my project ( C:\Program Files\MATLAB\MATLAB Runtime\<version>\toolbox\dotnetbuilder\bin\win64\<framework_version>\MWArray.dll )

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 MATLAB Compiler SDK 的更多信息

产品


版本

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by