'Queuing async tasks and passing back result to caller

In my app I have a single Client class responsible to do communication via TCP/IP and I have several async Processes posting "work" to the Client class. What I am trying to achieve is to manage a queue of "work", where the items from the queue are processed continuously but in such a way that only one item is processed at a time and when the item has been processed I need to pass back it's result to the caller.

I am looking for some guidelines.

Thank you for any suggestions!



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source