Асинхронно вызовите скомпилированную функцию 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()
function_name
— Имя функции, чтобы вызвать
in_args
— Список, разделенный запятыми входных параметров
nargs
— Количество результатов ожидается от сервера
out_stream
— Python StringIO
объект, получающий консоль, выводится
err_stream
— Python StringIO
объект, получающий вывод ошибок
Когда async
ключевое слово установлено в True
, функция MATLAB помещается в очередь обработки и Future
Python объект возвращен. Вы используете
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
объект.