在类的方法run()中使用以下代码中的变量bool subCycling_:
bool Foam::Time::run() const
810 {
811 bool running = value() < (endTime_ - 0.5*deltaT_);
812
813 if (!subCycling_) //bool subCycling_; //- Is the time currently being sub-cycled?
814 {
815 // only execute when the condition is no longer true
816 // ie, when exiting the control loop
817 if (!running && timeIndex_ != startTimeIndex_)
818 {
819 // Note, end() also calls an indirect start() as required
820 functionObjects_.end();
821 }
822 }
823
824 if (running)
825 {
826 if (!subCycling_)
827 {
828 const_cast<Time&>(*this).readModifiedObjects();
829
830 if (timeIndex_ == startTimeIndex_)
831 {
832 functionObjects_.start();
833 }
834 else
835 {
836 functionObjects_.execute();
837 }
838 }
839
840 // Update the "running" status following the
841 // possible side-effects from functionObjects
842 running = value() < (endTime_ - 0.5*deltaT_);
843 }
844
845 return running;
846 }
847
848
849 bool Foam::Time::loop()
850 {
851 bool running = run();
852
853 if (running)
854 {
855 operator++();
856 }
857
858 return running;
859 }
当我将子循环翻译成德语时,我仍然没有意义。 那么,什么意思是子循环[第813行]?这方面的例子很棒。
问候 streight
答案 0 :(得分:1)
您必须询问编写代码的人。如果没有任何上下文,就不可能从这个微小的代码片段中随机地说出来。接下来的行中可能会有一个提示(因为那些是受此布尔值影响的行),但是你没有向我们展示那些。
然而,作为线索,一些定时器实现使用“子循环”来描述在主要事件循环的每个循环内运行定时器机制的重复迭代。这可以解决由个别等待条件引起的争用:
在运行机械设备的代码中经常发现它。