Beispiel #1
0
        private void BufferFull(object sender, BufferFullEventArgs e)
        {
            int  i = Activities.IndexOf((Buffer)sender);
            bool downstream_running = false;

            if (Activities[i + 1].IsUnitOp())
            {
                downstream_running = ((Unit_Op)Activities[i + 1]).Running;
            }
            //Pause all upstream ops if downstream not running until buffer
            if (!downstream_running)
            {
                for (int j = i - 1; j >= 0; j--)
                {
                    if (Activities[j].IsUnitOp())
                    {
                        ((Unit_Op)Activities[j]).Paused = true;
                    }
                    else if (Activities[j].IsBuffer())
                    {
                        Buffer buff = (Buffer)Activities[j];
                        if (buff.Buffer_Full)
                        {
                            continue;
                        }
                        else
                        {
                            break;
                        }
                    }
                }
            }
        }
Beispiel #2
0
 //Invoke Buffer Full event that is handled within Process class
 protected virtual void OnBufferFull(BufferFullEventArgs e)
 {
     BufferFull?.Invoke(this, e);
 }