我需要像C#中的后台工作者一样在matlab中使用。 fyi drawnow
没有用,因为我不想在GUI中使用后台线程。我需要处理它。
所以,在matlab中有类似的东西吗?
感谢。
答案 0 :(得分:2)
没有。并不是的。 Matlab几乎完全是一个单线程环境。
有一些与此相关的警告。
工作线程的某些方面可以通过巧妙使用Timer对象来完成。一个项目一次执行,可以是计时器对象,也可以是主执行活动。定时器不会互相中断,但它们可以中断主执行线程。因此,您可以将昂贵的操作放在主要活动中,并将一些维护活动放在计时器中。
确定定时器可以中断哪些功能很棘手。我尽力解决问题的方法是this answer to another question。我已经和Mathworks合作过,并且确定没有令人满意的答案。
Java方法可以从事件派发线程执行。见javaMethodEDT
。 (这可能对您没有帮助,但我正在尝试优化我的Matlab /线程演讲。)
外部程序(例如Java,C,C#等)可以带来自己的线程。这些程序可以从Matlab运行。
答案 1 :(得分:0)
我在C#
发现了一些完全像背景工作者的东西。
t = timer('TimerFcn',@(x,y)disp(clock),'StartDelay',5,'ExecutionMode','fixedSpacing');
start(t)
背景线程将在5秒后运行并显示clock
功能的输出。
'fixedSpacing'
表示它会在结束后自动运行。