示例#1
0
            void IAsyncStateMachine.MoveNext()
            {
                int num1 = this._state_1;

                try
                {
                    TaskAwaiter <int> awaiter1;
                    int num2;
                    TaskAwaiter <int> awaiter2;
                    switch (num1)
                    {
                    case 0:
                        awaiter1          = this._awaiterTask;
                        this._awaiterTask = new TaskAwaiter <int>();
                        this._state_1     = num2 = -1;
                        break;

                    case 1:
                        awaiter2          = this._awaiterTask;
                        this._awaiterTask = new TaskAwaiter <int>();
                        this._state_1     = num2 = -1;
                        goto label_8;

                    default:
                        awaiter1 = this._parentProgram.CallMe().GetAwaiter();
                        if (!awaiter1.IsCompleted)
                        {
                            this._state_1     = num2 = 0;
                            this._awaiterTask = awaiter1;
                            DecompiledProgram.StateMachine_WaitForMe stateMachine = this;
                            this._taskBuilder.AwaitUnsafeOnCompleted <TaskAwaiter <int>, DecompiledProgram.StateMachine_WaitForMe>(ref awaiter1, ref stateMachine);
                            return;
                        }
                        break;
                    }
                    this.state_3  = awaiter1.GetResult();
                    this.result_1 = this.state_3;
                    awaiter2      = this._parentProgram.CallMe().GetAwaiter();
                    if (!awaiter2.IsCompleted)
                    {
                        this._state_1     = num2 = 1;
                        this._awaiterTask = awaiter2;
                        DecompiledProgram.StateMachine_WaitForMe stateMachine = this;
                        this._taskBuilder.AwaitUnsafeOnCompleted <TaskAwaiter <int>, DecompiledProgram.StateMachine_WaitForMe>(ref awaiter2, ref stateMachine);
                        return;
                    }
label_8:
                    this.state_4  = awaiter2.GetResult();
                    this.result_2 = this.state_4;
                    Console.WriteLine("Result1 : " + this.result_1.ToString() + " Result2: " + this.result_2.ToString() + "Ende !");
                }
                catch (Exception ex)
                {
                    this._state_1 = -2;
                    this._taskBuilder.SetException(ex);
                    return;
                }
                this._state_1 = -2;
                this._taskBuilder.SetResult();
            }
示例#2
0
 //[AsyncStateMachine(typeof(DecompiledProgram.StateMachine_WaitForMe))]
 //[DebuggerStepThrough]
 public void WaitForMe()
 {
     DecompiledProgram.StateMachine_WaitForMe stateMachine = new DecompiledProgram.StateMachine_WaitForMe();
     stateMachine._parentProgram = this;
     stateMachine._taskBuilder   = AsyncVoidMethodBuilder.Create();
     stateMachine._state_1       = -1;
     stateMachine._taskBuilder.Start <DecompiledProgram.StateMachine_WaitForMe>(ref stateMachine);
 }