我需要类似 C# 中的后台工作人员才能在 matlab 中使用。仅供参考drawnow
,因为我不希望 GUI 中的后台线程有用。我在处理中需要它。
那么,matlab中有类似的东西吗?
谢谢。
不,不是。Matlab 几乎完全是一个单线程环境。
有一些与此相关的警告。
工作线程的某些方面可以通过巧妙地使用 Timer 对象来完成。一次执行一项,可以是计时器对象,也可以是主执行活动。定时器不会互相打断,但可以打断主执行线程。因此,您可以将昂贵的操作放在主要活动中,并将一些维护活动放在计时器中。
确定哪些功能可以被定时器中断是很棘手的。我最大的努力就是在另一个问题的这个答案中。我已经与 Mathworks 合作过,并确定确实没有令人满意的答案。
Java 方法可以从事件分派线程中执行。见javaMethodEDT
。(这可能对您没有帮助,但我正在尝试优化我的 Matlab/线程语音。)
外部程序(例如 Java、C、C# 等)可以自带线程。这些程序可以从 Matlab 运行。
C#
我在..中找到了完全像后台工人的东西
t = timer('TimerFcn',@(x,y)disp(clock),'StartDelay',5,'ExecutionMode','fixedSpacing');
start(t)
后台线程将在 5 秒后运行并显示clock
函数的输出。
'fixedSpacing'
表示结束后会自动运行。