Асинхронно вызовите скомпилированную функцию MATLAB®, которая использует объект Python®, возвращенный в функцию initialize() путем передачи async = True.
future = my_client.function_name(in_args, nargout=nargs,
stdout=out_stream,
stderr=err_stream,
async=True)my_client — Имя объекта возвращено в initialize()
functionName Имя функции, чтобы вызвать
in_args — Список, разделенный запятыми входных параметров
nargs — Количество результатов ожидается от сервера
Объект out_stream — Python StringIO, получающий консоль, выводится
Объект err_stream — Python StringIO, получающий вывод ошибок
Когда ключевое слово async установлено в True, функция MATLAB помещается в очередь обработки, и объект Python Future возвращен. Вы используете объект Future получить результаты, когда функция MATLAB закончена, обработав.
Чтобы вызвать функцию MATLAB c1,c2= copy(o1,o2) от пакета copier асинхронно, используйте следующий код:
>>> import mutations >>> import matlab >>> myMutator = mutations.initialize() >>> m1 = matlab.double([1,2,3]) >>> m2 = matlab.double([10,20,30]) >>> m3 = matlab.double([100,200,300]) >>> resultFuture = myMutator.mutate(m1,m2,m3, async=True) >>> while !resultFuture.done(): ... time.sleep(1) ... >>> result = resultFuture.result()
Можно отменить асинхронные запросы с помощью метода cancel() объекта Future.