title: Threading, ConcurrencyMode and UseSynchronizationContext clarification
body: <p>I have WCF service running in a WPF application.  </p>
  
  <pre><code>[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple, UseSynchronizationContext = false)]
  </code></pre>
  
  <p>This WCF is logging service meaning no multithreading issues, all calls should be fast and no reply (client has IsOneWay and binding is NetNamedPipes).  </p>
  
  <p>From what I understand:</p>
  
  <p><strong>InstanceContextMode.Single</strong> - Means this class in singleton, there is only 1 instance of it. and all calls reaches this class.<br>
  <strong>ConcurrencyMode.Multiple</strong> - Each call to this service, will be in new/different thread.  </p>
  
  <p>When i set these 2 settings, All calls are made from the GUI Thread, Only after I added <strong>UseSynchronizationContext = false</strong> - the calls invoked from other threads.  </p>
  
  <p>My question is - If i dont want to log via the GUI thread, Why do I need to define both ConcurrencyMode and UseSynchContext ? Am I missing something usingthis settings ? Why ConcurrencyMode is not enough (because its wpf application ?) </p>
  
  <p>Thanks</p>