The client uses one unique correlation id which is created in the constructor. When multiple threads call the Call method in parallel the responses might be mixed. The Call method just picks the first available response which might not be the correct one.
Is my understanding correct or do I miss something?