title: WCF ConcurrencyMode.Multiple Connection best practices and Caching
body: <p>I've got a WCF service with the following settings:</p>
  
  <ul>
  <li>NetNamedPipeBinding</li>
  <li>ConcurrencyMode.Multiple</li>
  <li>InstanceContextMode.Single</li>
  </ul>
  
  <p>Now I've got a client that accesses to this WCF service in a multi-threaded fashion.</p>
  
  <p>As far as I understand I have to open a new connection to the service for each thread to avoid threads to block each others.</p>
  
  <ul>
  <li>In this case how expensive is the <code>Open()</code> call (<em>service is in the same computer</em>)? </li>
  <li>Shall I cache/pool the my client class? (<em>derived from <code>ClientBase</code></em>) or does WCF provides a transparent pool for connections similar to SQLConnection Pooling?</li>
  </ul>