title: NSOperation - main method runs on the main thread?
body: <p>Why does my NSOperation subclass run the main method on the main thread? I want it to run asynchronously.</p>
  
  <pre><code>@interface ServiceClient : NSOperation
  @end
  
  @implementation ServiceClient
  
  - (void)main
  {
     if ([[NSThread currentThread] isEqual:[NSThread mainThread]])
     {
        NSLog(@"Why does this get called on the main thread");
     }
  }
  
  @end
  </code></pre>
  
  <p>Starting the operation</p>
  
  <pre><code>ServiceClient *serviceClient = [[ServiceClient aloc] init];
  [serviceClient start];
  </code></pre>
  
  <p><strong>EDIT:</strong></p>
  
  <p>Documentation suggest overriding isCuncurrent and returning yes, but the method does not get called.</p>
  
  <pre><code>- (BOOL)isConcurrent
  {
     return YES;
  }
  </code></pre>