Advertisement
Noseratio

SO_22541734

Mar 22nd, 2014
563
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.59 KB | None | 0 0
  1.   /*
  2.     // http://stackoverflow.com/q/22541734/1768303
  3.  
  4.     public static class TaskExt
  5.     {
  6.         public static async Task<bool> Convert(this Task @this)
  7.         {
  8.             await @this.ConfigureAwait(false);
  9.             return false;
  10.         }
  11.     }
  12.   */
  13.  
  14.   public static class TaskExt
  15.   {
  16.     public static Task<bool> Convert(this Task @this)
  17.     {
  18.       TaskExt.Convertd__0 stateMachine;
  19.       stateMachine.@this = @this;
  20.       stateMachine.t__builder = AsyncTaskMethodBuilder<bool>.Create();
  21.       stateMachine.1__state = -1;
  22.       stateMachine.t__builder.Start<TaskExt.Convertd__0>(ref stateMachine);
  23.       return stateMachine.t__builder.Task;
  24.     }
  25.  
  26.     [CompilerGenerated]
  27.     [StructLayout(LayoutKind.Auto)]
  28.     private struct Convertd__0 : IAsyncStateMachine
  29.     {
  30.       public int 1__state;
  31.       public AsyncTaskMethodBuilder<bool> t__builder;
  32.       public Task @this;
  33.       private ConfiguredTaskAwaitable.ConfiguredTaskAwaiter u__awaiter1;
  34.       private object t__stack;
  35.  
  36.       void IAsyncStateMachine.MoveNext()
  37.       {
  38.         bool result;
  39.         try
  40.         {
  41.           bool flag = true;
  42.           ConfiguredTaskAwaitable.ConfiguredTaskAwaiter awaiter;
  43.           switch (this.1__state)
  44.           {
  45.             case -3:
  46.               goto label_6;
  47.             case 0:
  48.               awaiter = this.u__awaiter1;
  49.               this.u__awaiter1 = new ConfiguredTaskAwaitable.ConfiguredTaskAwaiter();
  50.               this.1__state = -1;
  51.               break;
  52.             default:
  53.               awaiter = this.@this.ConfigureAwait(false).GetAwaiter();
  54.               if (!awaiter.IsCompleted)
  55.               {
  56.                 this.1__state = 0;
  57.                 this.u__awaiter1 = awaiter;
  58.                 this.t__builder.AwaitUnsafeOnCompleted<ConfiguredTaskAwaitable.ConfiguredTaskAwaiter, TaskExt.Convertd__0>(ref awaiter, ref this);
  59.                 flag = false;
  60.                 return;
  61.               }
  62.               else
  63.                 break;
  64.           }
  65.           awaiter.GetResult();
  66.           ConfiguredTaskAwaitable.ConfiguredTaskAwaiter configuredTaskAwaiter = new ConfiguredTaskAwaitable.ConfiguredTaskAwaiter();
  67.           result = false;
  68.         }
  69.         catch (Exception ex)
  70.         {
  71.           this.1__state = -2;
  72.           this.t__builder.SetException(ex);
  73.           return;
  74.         }
  75. label_6:
  76.         this.1__state = -2;
  77.         this.t__builder.SetResult(result);
  78.       }
  79.  
  80.       [DebuggerHidden]
  81.       void IAsyncStateMachine.SetStateMachine(IAsyncStateMachine param0)
  82.       {
  83.         this.t__builder.SetStateMachine(param0);
  84.       }
  85.     }
  86.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement