主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

创建图形时模块控制台显示

WaitForFiguresToDie 方法

MATLAB® Compiler SDK™ 产品向其创建的每个 .NET 类添加了一个 WaitForFiguresToDie 方法。

WaitForFiguresToDie 的目的是只要显示在封装的 MATLAB 代码中创建的图形,就会模块调用程序的执行。通常在以下情况下使用 WaitForFiguresToDie

  • 有一个或多个打开的图形是由 MATLAB Compiler SDK 产品创建的 .NET 程序集创建的。

  • 显示图形的方法需要用户输入才能继续。

  • 调用图形的方法是从控制台程序中的 main() 调用的。

调用 WaitForFiguresToDie 时,如果调用对象创建的任何图形保持打开状态,则调用程序的执行将被阻止。

WaitForFiguresToDie 不接受任何参量。您的应用程序可以在执行期间随时调用 WaitForFiguresToDie

提示

尽可能考虑使用 console.readline 方法,因为它以标准化方式完成了大部分功能。

小心

从交互式程序调用 WaitForFiguresToDie 可能会导致应用程序停止响应。此方法应从基于控制台的程序调用。

使用 WaitForFiguresToDie 模块执行

以下示例说明如何在 .NET 应用程序中使用 WaitForFiguresToDie。该示例使用由 MATLAB Compiler SDK 产品创建的 .NET 程序集。该组件封装了绘制简单绘图的 MATLAB 代码。

  1. 为您的源代码创建一个工作文件夹。在此示例中,该文件夹为 D:\work\plotdemo

  2. 在此文件夹中,创建以下名为 drawplot.m 的 MATLAB 文件:

    function drawplot()
    plot(1:10);
    
  3. 使用以下信息,使用 .NET 程序集编译器compiler.build.dotNETAssembly 构建 .NET 组件:

    字段
    库名称Figure
    类名Plotter
    要编译的文件drawplot.m

    例如,如果您使用的是 compiler.build.dotNETAssembly,请输入:

    buildResults = compiler.build.dotNETAssembly('drawplot.m', ...
    'AssemblyName','Figure', ...
    'ClassName','Plotter');

    有关详细信息,请参阅生成 .NET 程序集并编译 .NET 应用程序中的说明。

  4. 在 Visual Studio® 中,创建一个 C# Console App (.NET Framework)。将生成的源代码替换为以下代码:

    using Figure.Plotter;
    
    public class Main 
    {
      public static void main(String[] args) 
      {
        try
        {
          plotter p = new Plotter();
          try 
          {
            p.drawplot();
            p.WaitForFiguresToDie();
          }
          catch (Exception e)
          {
            console.writeline(e);
          }
        }
      }
    }

  5. 添加对生成的程序集文件 Figure.dll 的引用。

  6. 编译并运行该应用程序。

    该程序在 MATLAB 图形窗口中显示从 1 到 10 的图。当您关闭图形时,应用程序结束。

    注意

    要查看在没有调用 WaitForFiguresToDie 的情况下会发生什么,注释掉该调用,重建应用程序并运行它。在这种情况下,图形被绘制出来并在应用程序退出时立即被销毁。

另请参阅

主题