/// <summary> /// Check whether a resize is necessary /// </summary> /// <param name="SpreadMax"></param> /// <returns>Resize occured</returns> public bool CheckSliceCount(int SpreadMax) { if (FProcess.SliceCount == SpreadMax) { return(false); } lock (FLockProcess) { for (int i = FProcess.SliceCount; i < SpreadMax; i++) { Add(); } if (FProcess.SliceCount > SpreadMax) { for (int i = SpreadMax; i < FProcess.SliceCount; i++) { Dispose(i); } FProcess.SliceCount = SpreadMax; FOutput.SliceCount = SpreadMax; } FOutput.AlignOutputPins(); } return(true); }
public bool CheckInputSize(int SpreadMax) { if (!FInput.CheckInputSize() && FOutput.SliceCount == SpreadMax) { return(false); } lock (FLockProcess) { if (FInput[0] == null) { SpreadMax = 0; } for (int i = FProcess.SliceCount; i < SpreadMax; i++) { Add(FInput[i]); } if (FProcess.SliceCount > SpreadMax) { for (int i = SpreadMax; i < FProcess.SliceCount; i++) { Dispose(i); } FProcess.SliceCount = SpreadMax; FOutput.SliceCount = SpreadMax; } FOutput.AlignOutputPins(); } return(true); }