我有一个用于motorcontroller(h_TDC)的ActiveX句柄,它允许我注册一些事件。我想利用'MoveComplete'事件。 在我的主函数中,我循环直到切换标志。我想在我之前注册的eventhandler中设置标志。它是一个嵌套函数,因此它共享同一个工作区,标志位于。
似乎事件被正确触发,但只在while循环之后处理,除非我绘制一些东西,例如与imshow。这对我来说没有意义。 如何在循环期间不进行绘图的情况下使处理“中断”?
如果我不使用imshow,则脚本在MAX_ITER之后终止。如果我使用imshow,处理程序会提前终止它(如所希望的那样)
function Blubb
MAX_ITER = 100;
move_completed = false;
....
h_moveComplete = @MyMoveCompleteHandler;
h_TDC.registerevent({'MoveComplete' h_moveComplete}); % h_TDC is our activeX handle
figure;
while ~move_completed && i < MAX_ITER
.....
imshow(blubb) %<-- without this the handler is executed only after while-loop
end
function MyMoveCompleteHandler(varargin)
move_completed = true;
end
end