0

我需要类似 C# 中的后台工作人员才能在 matlab 中使用。仅供参考drawnow,因为我不希望 GUI 中的后台线程有用。我在处理中需要它。

那么,matlab中有类似的东西吗?

谢谢。

4

2 回答 2

2

不,不是。Matlab 几乎完全是一个单线程环境。

有一些与此相关的警告。

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

    确定哪些功能可以被定时器中断是很棘手的。我最大的努力就是在另一个问题的这个答案中。我已经与 Mathworks 合作过,并确定确实没有令人满意的答案。

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

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

于 2013-05-22T19:34:09.443 回答
0

C#我在..中找到了完全像后台工人的东西

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

start(t)

后台线程将在 5 秒后运行并显示clock函数的输出。 'fixedSpacing'表示结束后会自动运行。

于 2013-05-27T13:33:06.390 回答