title: Enable Async TransactionScope without TransactionScopeAsyncFlowOption.Enabled
body: <p>Following is Async Cache and Database update using Transaction Scope. I cannot use <code>TransactionScopeAsyncFlowOption.Enabled</code> introduced in the v 4.5.1, since the Apache Ignite.Net Cache I am using doesn't support it. I have tried finding a workaround by capturing the current <code>Synchronization Context</code> and then explicitly using <code>Synchronization Context Send</code> method to complete the transaction, but this doesn't work as I still get an error <code>Transaction scope must be disposed on same thread it was created</code></p>
  
  <p>Any suggestion how to go about achieving the <code>Async Update</code>. one of the suggestion by Apache Ignite support is to use something like:</p>
  
  <p><code>Task.WhenAll(cacheUpdate, databaseUpdate).Wait()</code>, but that would make Async code Sync, therefore not one of the best option</p>
  
  <pre><code>public async Task Update()
  {
      // Capture Current Synchronization Context
      var sc = SynchronizationContext.Current;
  
      TransactionOptions tranOptions = new TransactionOptions();
      tranOptions.IsolationLevel = System.Transactions.IsolationLevel.RepeatableRead;
  
  
      using (var ts = new TransactionScope())
      {
          // Do Cache Update Operation as Async
          Task cacheUpdate = // Update Cache Async
  
          // Do Database Update Operation as Async
          Task databaseUpdate = // Update Database Async
  
          await Task.WhenAll(cacheUpdate, databaseUpdate);
  
                  sc.Send(new SendOrPostCallback(
                  o =&gt;
                  {
                      ts.Complete();
                  }), sc);        
      }
  }
  </code></pre>