title: Pass Cancellation Token to child thread
body: <p>I have scenario where I create a cancellation token that passed to parent thread, I need to pass same cancellation token to child thread. But when I pass cancellation token to child thread, threads are not cancelled when parent invokes Cancel().</p>
  
  <pre><code>public void main()
  {
     CancellationTokenSource cts = new CancellationTokenSource();
     CancellationToken token = cts.Token;
     ChildClass instance = new ChildClass();
  
     Task.Factory.StartNew(() =&gt; 
                  Task.Factory.StartNew(() =&gt; instance.start(token), token), token);
  }
  
  public void cancel()
  {
      cts.Cancel();
  }
  
  public class ChildClass()
  {
      public void start(CancellationToken token)
      {
          ParallelOptions po = new ParallelOptions();
          po.CancellationToken = token;
  
          Parallel.For(0, 10, i =&gt; 
                {"do some processing"}, po, i);
      } 
  }
  </code></pre>
  
  <p>I have created a cancellation token in parent class and passing it to child thread through parallel options, but threads created by Parallel.For are not terminated when parent invokes Cancel().</p>
  
  <p>Is there a concept of passing CancellationToken as reference?</p>