title: How does the svcutil (WCF) create task based methods for every service?
body: <p>I have a system with about 10 <code>WCF</code> services.</p>
  
  <p>The services communicate between themselves using a <code>ChannelFactory</code>.</p>
  
  <p>The <code>ChannelFactory</code> is used behind an interceptor. </p>
  
  <p>Here's a sample of how the code looks:</p>
  
  <pre><code>var service = ServiceCreator.CreateService&lt;IService1&gt;(); // dynamic proxy
  service.DoSomething(); // behind the scenes the call is intercepted and the WCF channel factory is called
  </code></pre>
  
  <p>My problem is that my interfaces have sync methods and I have a bottle neck on waiting for these sync service calls to finish - This blocks my threads and causes performance issues.</p>
  
  <p>How does the svcutil create Task based methods for services? I would like to somehow do the same thing inside an interceptor and scale my application better.</p>