/// <summary> /// Executes the Filter task over the data provided by the input pipe /// and writes the result to the output pipe. /// Is est, executes the operation: OutputPipe.Write(FilterTask(InputPipe.Read())); /// </summary> public virtual void FilterNext() { Monitor.Enter(oLock); outputPipe.Write(FilterTask(inputPipe.Read())); Monitor.PulseAll(oLock); Monitor.Exit(oLock); }