I was looking for the easiest way to process task asynchronously, but keep the order. However, implementing something on top of the BlockingCollection<T> seemed a bit of an overkill.
Simple async/await
Instead, the original implementation was similar to:
backgroundTasks.Add(LongProcessAsync());
And later on I could