Возможно вызвать синхронный метод асинхронно в MATLAB®. С некоторыми изменениями можно использовать Microsoft®
BeginInvoke
и EndInvoke
методы. Для получения дополнительной информации см. MSDN® Синхронные методы вызова статьи асинхронно.
Можно использовать делегаты для асинхронного вызова синхронного метода при помощи BeginInvoke
и EndInvoke
методы. Если поток, который инициирует асинхронный вызов, не должен быть потоком, который обрабатывает результаты, можно выполнить метод коллбэка, когда вызов завершится.
Примечание
MATLAB является однопоточным приложением. Поэтому обработка асинхронных вызовов в среде MATLAB может привести к взаимоблокировкам.
EndInvoke
С out
и ref
Аргументы типаПодпись делегата MATLAB для EndInvoke
следует специальным правилам отображения, если ваш делегат out
или ref
аргументы типа. Для получения дополнительной информации о отображении см. .NET Delegates With out и ref Аргументы. Для примеров смотрите EndInvoke
страница с описанием.
Чтобы MATLAB обработал событие, которое выполняет обратный коллбэк делегата в основном потоке, вызовите MATLAB pause
(или аналогичная) функция.