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

Метод 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
    ClassName 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, прокомментируйте вызов, восстановите приложение и запустите его. В этом случае фигура чертится и сразу уничтожается, когда приложение выходит.