在使用Order List时,当一个order list满足不了order的数量,要用第二个甚至第三个order list,有一段程序,请大虾解释一下,多谢!程序如下:8 D y' H4 J7 n+ O
begin P_Order arriving procedure 3 Y& K0 J$ Q6 H: w6 v set V_NumWanted to 10 . t5 Y$ y' w9 U4 C4 ? set V_NumOnList to OL_List1 current value $ V3 ^$ g& C+ J order V_NumWanted loads from OL_List1 to P_NextProc* H! v2 g9 _: f
in case order not filled/ a8 V2 b9 \; b! J9 g
begin / N5 A+ Z2 G4 x. n5 @9 o wait for .01 sec$ u6 \. e+ a- G1 L
decrement V_NumWanted by V_NumOnList - OL_List1 current value + I( ?% n: D' W/ h set V_NumOnList to OL_List2 current value+ A) s$ z9 D# r6 u
order V_NumWanted loads from OL_List2 to P_NextProc s9 e6 U4 @2 \9 N( D$ C in case case order not filled * R. a! d8 Z& Z) C/ C' D ................................................................. 7 m' r9 z$ f( w! m9 x. J 6 a2 T6 z c7 \( I2 d0 |8 y* @2 [ ( h6 Q. h6 p8 n \, P6 Z6 h& s我就是不明白上面用红绿色作标记的那句,为什么后面要加-OL_List1 current value.用前面绿色部分,即把不够的load算出来就不行了吗?
我是觉得这句没有更好。, W k7 |+ I, s, M
5 A g/ m: a3 z! D4 e
分析一下,他要写上wait for .01 sec,目的应该是,第一个OL里的load先出去,再去order第二个OL,否则容易乱序;而在这0.01秒内,恐怕不能保证OL1里面不进新load。如果这样的话,有这句 - OL_List1 current value反倒容易出问题。 / a) O C; y2 t1 Y5 y# z! `$ d + R# p! m( L' J* y: n写这个程序的大概是西方人吧,喜欢逻辑上的严谨和形式上的正确? # O, L2 s6 F7 y( ?或者,OL里会存在有Load不被Order出来的问题么?