Do I understand correctly that requests may be processed in different threads? For example, if I have a singleton queue should I use a ConcurrentQueue<T> instead of Queue<T> for that?