title: UniRx SchedulerOn MainThread not works at first time invoke
body: <p>I heavily use UniRx in my project but I find a problem when I first call <code>SchedulerOn(Scheduler.MainThread)</code> it will NOT do left things in main thread.Uses code like this:</p>
  
  <pre><code>Login (new LoginReq (account.text, pwd.text, 1L)).SchedulerOn(Scheduler.MainThread).Done (x =&gt; {
      Debug.Log("login req thread - " + System.Threading.Thread.CurrentThread.ManagedThreadId);
      Package.Log("Login response - " + x.ToString());
      if(x.errorMsg == null) {
          Package.Log("login success - " + x.ToString());
          //choice game world -&gt; choice role
          enterObj.SetActive(true);
          loginObj.SetActive(false);
      } else {
          rspTips.text = x.ToString();
      }
  });
  </code></pre>
  
  <p>The output shows SetActive only can be call at main thread.<br>
  The problem occurred expecially when I open PC and first run the application.<br>
  Does it because of .NET warm up? I'm not sure how does the thread dispatch works.</p>
  
  <p><strong>UPDATE</strong><br>
  I think I'm loss some important things.<br>
  <code>Login</code> return <code>RSG.IPromise&lt;T&gt;</code>(<a href="https://github.com/Real-Serious-Games/C-Sharp-Promise" rel="nofollow noreferrer">git home page at here</a>) which used to lightweight asyc task but <code>RSG.Promise</code> lib doesn't have scheduler module.So I'm wrap a <code>SchedulerPromise</code> with <code>UniRx</code>'s <code>IScheduler</code> and the code not has novel technology.<a href="https://github.com/LoranceChen/MiniMoTank/blob/master/Assets/Scripts/Util/Promise/SheduleredPromise.cs#L159" rel="nofollow noreferrer">See this please about the wrapper source code</a></p>
  
  <p>I have stuck here a long time.Thanks any advice.</p>