C++에서 호출 할 DLL에 MATLAB 프로젝트를 배포했는데 잘 작동합니다. 행복한 날들.C/C++에서 MATLAB m- 파일 함수를 중단하려면 어떻게합니까?
하지만 사용자가 작업 취소를 요청하면 어떻게됩니까?
UserAborted
이라는 global
변수를 만들려고했습니다. MATLAB에서 long 함수를 실행하기 전에 0으로 초기화합니다. 내 긴 함수에서 루프의 각 반복에서 AbortIfUserRequested
을 부르는
function AbortIfUserRequested
global UserAborted
if (UserAborted == 1)
error('User Abort');
end
end
function UserAbortLongFunction
global UserAborted
UserAborted = 1;
end
: 나는 또한 다음과 같은 두 가지 기능을 썼다. 나는 또한 UserAbortLongFunction
을 수출했다.
UserAbortLongFunction
이 호출 된 직후에 long 함수가 AbortIfUserRequested
에 도달하여 오류가 발생할 것으로 예상했습니다.
대신 긴 함수가 끝날 때까지 계속 실행, 만 다음는 UserAborted
의 값은 바뀌지 않습니다.
사용자가 묻는대로 긴 기능을 중단하고 싶습니다. 그것을 할 방법이 있습니까?
M 코드 인 경우 Matlab은 원근감있는 단일 스레드입니다. UserAbortLongFunction을 어떻게 호출합니까? 긴 작업이 아직 실행 중이거나 차단되어있는 동안 UserAbortLongFunction이 반환합니까? –
'UserAbortLongFunction'에 대한 호출이 막히지 않으며, immidiatly를 반환합니다. M 코드 문제인지는 확실치 않습니다. 긴 함수가 실행되는 동안 MATLAB 내에서 명령 행에서'UserAbortLongFunction'을 실행하려고했습니다. 또한 긴 함수는'UserAborted'의 값을 코드의 많은 부분에서 작업의 일부로 인쇄했습니다. 오래 전부터'UserAbortLongFunction'라고 부른 긴 함수가 끝날 때까지 0을 유지했습니다. – scraimer