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

Метод WaitForFiguresToDie

MATLAB® Продукт Compiler SDK™ добавляет WaitForFiguresToDie метод к каждому классу.NET, который это создает.

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

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

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

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

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

WaitForFiguresToDie не берет аргументов. Ваше приложение может вызвать 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. Создайте компонент.NET с приложением Library Compiler или compiler.build.dotNETAssembly использование следующей информации:

    Поле Значение
    Имя библиотекиFigure
    ClassName Plotter
    Файл, чтобы скомпилироватьdrawplot.m

    Например, если вы используете compiler.build.dotNETAssemblyВвод:

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

    Для получения дополнительной информации смотрите, что инструкции в Генерируют блок.NET и Создают Приложение.NET.

  4. В Visual Studio®, создайте Console App (.NET Framework) C#. Замените сгенерированный исходный код на следующий код:

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

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

    Примечание

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

Смотрите также

| |

Похожие темы