The purpose of the WaitTransformation is to block execution of a path in your Network until another component (or multiple other components) has completed processing. The other dataflow compoment can be either a component from the same network, or a component of a different data flow.
When waiting for a component in the same data flow, the WaitTransformation is mostly used in conjunction with a Multicast or Predicates, which split up the network in different paths.
Additionally, the WaitTransformation also accepts a TaskCompletionSource - so basically it can be used to wait for any Task.
The WaitTransformation has an input and output buffer. It won’t accept any records until the component(s) in the network which are awaited are completed - once the other components are completed, the WaitTransformation will start to process all records without any delay.
The WaitTransformation can also be used to wait for any kind of TaskCompletionSource. You can pass one or multiple task completion sources to the property TaskCompletionSources.