matlab中是否有像后台工作者一样的功能?

时间:2013-05-22 17:55:31

标签: c# matlab

我需要像C#中的后台工作者一样在matlab中使用。 fyi drawnow没有用,因为我不想在GUI中使用后台线程。我需要处理它。

所以,在matlab中有类似的东西吗?

感谢。

2 个答案:

答案 0 :(得分:2)

没有。并不是的。 Matlab几乎完全是一个单线程环境。

有一些与此相关的警告。

  1. 工作线程的某些方面可以通过巧妙使用Timer对象来完成。一个项目一次执行,可以是计时器对象,也可以是主执行活动。定时器不会互相中断,但它们可以中断主执行线程。因此,您可以将昂贵的操作放在主要活动中,并将一些维护活动放在计时器中。

    确定定时器可以中断哪些功能很棘手。我尽力解决问题的方法是this answer to another question。我已经和Mathworks合作过,并且确定没有令人满意的答案。

  2. Java方法可以从事件派发线程执行。见javaMethodEDT。 (这可能对您没有帮助,但我正在尝试优化我的Matlab /线程演讲。)

  3. 外部程序(例如Java,C,C#等)可以带来自己的线程。这些程序可以从Matlab运行。

答案 1 :(得分:0)

我在C#发现了一些完全像背景工作者的东西。

t = timer('TimerFcn',@(x,y)disp(clock),'StartDelay',5,'ExecutionMode','fixedSpacing');

start(t)

背景线程将在5秒后运行并显示clock功能的输出。 'fixedSpacing'表示它会在结束后自动运行。