matlab::cpplib::initMATLABLibraryAsync

Инициализируйте библиотеку функции MATLAB асинхронно

Описание

FutureResult<std::shared_ptr<MATLABLib>> initMATLABLibraryAsync(MATLABApplication & application, const std::u16string & ctfPath)

Инициализируйте библиотеку MATLAB® функционируйте асинхронно, получить указатель на недавно инициализированный C++ совместно использовало библиотеку, если инициализация завершена.

Параметры

MATLABApplication & application

Объект MATLAB Application возвращен в initMATLABApplication.

const std::u16string & ctfPath

Имя библиотеки. Если путь не использован, он принят, чтобы быть в текущей папке. Для получения информации о том, как использовать ctfPath, смотрите matlab::cpplib::initMATLABLibrary.

Возвращаемое значение

FutureResult<std::shared_ptr<MATLABLib>>

std::future от которого состояние процесса инициализации или указатель библиотеки (если инициализация завершена), может быть получен.

Исключения

matlab::cpplib::LibNotFound

Никакая библиотека с именем, найденным на разделяемом пути к библиотеке.

matlab::cpplib::LibInitErr

Библиотека не может быть инициализирована.

Примеры

Инициализируйте MATLABLibrary Асинхронно, и ожидайте, пока это не инициализирует

auto future = mc::initMatlabLibraryAsync(matlabApplication, 
  mc::convertUTF8StringToUTF16String("libdoubleasync.ctf"));
if (!future.valid()) {
    throw std::future_error(std::future_errc::no_state);
}
std::future_status status;
do {
    status = future.wait_for(std::chrono::milliseconds(200));
    if (status == std::future_status::timeout) {
        std::cout << "Library initialization is in progress.\n";
    } else if (status == std::future_status::ready) {
        std::cout << "Library initialization has completed.\n";
    }
    std::this_thread::sleep_for(std::chrono::seconds(1));
} while (status != std::future_status::ready);
auto lib = future.get();
Введенный в R2018a