Консоль блока отображается при создании фигур

Метод WaitForFiguresToDie

MATLAB® Compiler, SDK™ продукт добавляет WaitForFiguresToDie метод для каждого класса .NET, который он создает. WaitForFiguresToDie не принимает никаких аргументов. Ваше приложение может вызвать WaitForFiguresToDie в любое время во время выполнения.

Цель WaitForFiguresToDie блокирует выполнение вызова программы, пока отображаются рисунки, созданные в инкапсулированном коде MATLAB. Обычно вы используете WaitForFiguresToDie когда:

  • Существуют одни или несколько открытых рисунков, созданных сборкой .NET, созданной продуктом MATLAB Compiler SDK.

  • Метод, отображающий графику, требует входа пользователем перед продолжением.

  • Метод, вызывающий рисунки, был вызван из main() в консольной программе.

Когда WaitForFiguresToDie вызывается, выполнение вызывающей программы блокируется, если какие-либо рисунки, созданные вызывающим объектом, остаются открытыми.

Совет

Рассмотрите использование console.readline способ, когда это возможно, так как он обеспечивает большую часть этой функциональности стандартизированным способом.

Внимание

Используйте осторожность при вызове WaitForFiguresToDie способ. Вызов этого метода из интерактивной программы может заставить приложение перестать отвечать. Этот метод должен вызываться только из консольных программ.

Использование WaitForFiguresToDie для блокирования выполнения

Следующий пример иллюстрирует использование WaitForFiguresToDie из приложения .NET. В примере используется сборка .NET, созданная продуктом MATLAB Compiler SDK; объект инкапсулирует код MATLAB, который рисует простой график.

  1. Создайте рабочую папку для исходного кода. В этом примере папка D:\work\plotdemo.

  2. В этой папке создайте следующий файл MATLAB:

    drawplot.m
    
    function drawplot()
        plot(1:10);
    
  3. Используйте MATLAB Compiler SDK, чтобы создать сборку .NET со следующими свойствами:

    Имя сборкиFigure
    Имя классаPlotter
  4. Создайте программу .NET в файле с именем runplot со следующим кодом:

    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. Скомпилируйте приложение.

    Когда вы запускаете приложение, программа отображает график от 1 до 10 в графическом окне MATLAB. Приложение заканчивается, когда вы закрываете рисунок.

    Примечание

    Чтобы увидеть, что происходит без вызова WaitForFiguresToDieзакомментируйте вызов, перестроите приложение и запустите его. В этом случае рисуется фигура и немедленно уничтожается, когда приложение выходит.