title: What's the difference between [OperationContract(IsOneWay = true)] and checking the generated asynchronous operations checkbox?
body: <p>What is the difference between marking a WCF method with </p>
  
  <p><code>[OperationContract(IsOneWay = true)]</code></p>
  
  <p>attribute and checking the <strong>generate asynchronous</strong> operations checkbox when adding a service reference?</p>
  
  <p>From what I have read, it seems the asynchronous nature of the call should only be defined on the client side.
  If that's the case, what is the point of the <code>[OperationContract(IsOneWay = true)]</code>?</p>
  
  <p>Right now, I just have the following method running in the WCF method.</p>
  
  <pre><code> public void UpdateIndex(IndexElement[] indexElements)
      {
          // start the update on a new thread.
          Thread thread = new Thread(() =&gt; UpdateIndexThread(indexElements));
          thread.Start();
      }
  </code></pre>
  
  <p>I created a service reference in my client's code, and I simply call: </p>
  
  <pre><code>indexerClient.UpdateIndex(indexElements);
  </code></pre>
  
  <p>Where <code>indexerClient</code> is an instance of my WCF service.</p>
  
  <p>Should this also work? It doesn't seem to, it's almost as though it waits for the thread to complete before returning.</p>