I want to set up a TransformBlock
that processes its item in parallel. Thus, I'm setting ExecutionDataflowBlockOptions.MaxDegreeOfParallelism
to > 1. I don't care about the order of the messages but the documentation says:
When you specify a maximum degree of parallelism that is larger than 1, multiple messages are processed simultaneously, and therefore, messages might not be processed in the order in which they are received. The order in which the messages are output from the block will, however, be correctly ordered.
Does "correctly ordered" mean that if there is one message in the queue that needs long processing time, further messages are not output until this one message is processed?
And if so, how can I specify an Execution Block (for example a TransformBlock
) that does not care about the ordering? Or do I have to specify at the consumption end that I don't care about ordering?