Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Program
- {
- static void Main(string[] args)
- {
- KA().Wait();
- }
- static async Task KA()
- {
- await WriteToPipe();
- Console.WriteLine("YES!");
- }
- private static async Task WriteToPipe()
- {
- StreamReader reader = new StreamReader(new MemoryStream());
- string line = await reader.ReadLineAsync();
- Console.WriteLine("Readed!");
- }
- }
- turns into...:
- internal class Program
- {
- public Program()
- {
- base.\u002Ector();
- }
- private static void Main(string[] args)
- {
- Program.KA().Wait();
- }
- private static Task KA()
- {
- Program.\u003CKA\u003Ed__1 stateMachine;
- stateMachine.\u003C\u003Et__builder = AsyncTaskMethodBuilder.Create();
- stateMachine.\u003C\u003E1__state = -1;
- stateMachine.\u003C\u003Et__builder.Start<Program.\u003CKA\u003Ed__1>(ref stateMachine);
- return stateMachine.\u003C\u003Et__builder.Task;
- }
- private static Task WriteToPipe()
- {
- Program.\u003CWriteToPipe\u003Ed__1 stateMachine;
- stateMachine.\u003C\u003Et__builder = AsyncTaskMethodBuilder.Create();
- stateMachine.\u003C\u003E1__state = -1;
- stateMachine.\u003C\u003Et__builder.Start<Program.\u003CWriteToPipe\u003Ed__1>(ref stateMachine);
- return stateMachine.\u003C\u003Et__builder.Task;
- }
- [CompilerGenerated]
- [StructLayout(LayoutKind.Auto)]
- private struct \u003CKA\u003Ed__1 : IAsyncStateMachine
- {
- public int \u003C\u003E1__state;
- public AsyncTaskMethodBuilder \u003C\u003Et__builder;
- private TaskAwaiter \u003C\u003Eu__\u0024awaiter0;
- void IAsyncStateMachine.MoveNext()
- {
- int num1 = this.\u003C\u003E1__state;
- try
- {
- TaskAwaiter awaiter;
- int num2;
- if (num1 == 0 || num1 != 1)
- {
- awaiter = Program.WriteToPipe().GetAwaiter();
- if (!awaiter.IsCompleted)
- {
- this.\u003C\u003E1__state = num2 = 1;
- this.\u003C\u003Eu__\u0024awaiter0 = awaiter;
- this.\u003C\u003Et__builder.AwaitUnsafeOnCompleted<TaskAwaiter, Program.\u003CKA\u003Ed__1>(ref awaiter, ref this);
- return;
- }
- }
- else
- {
- awaiter = this.\u003C\u003Eu__\u0024awaiter0;
- this.\u003C\u003Eu__\u0024awaiter0 = new TaskAwaiter();
- this.\u003C\u003E1__state = num2 = -1;
- }
- awaiter.GetResult();
- awaiter = new TaskAwaiter();
- Console.WriteLine("YES!");
- }
- catch (Exception ex)
- {
- this.\u003C\u003E1__state = -2;
- this.\u003C\u003Et__builder.SetException(ex);
- return;
- }
- this.\u003C\u003E1__state = -2;
- this.\u003C\u003Et__builder.SetResult();
- }
- [DebuggerHidden]
- void IAsyncStateMachine.SetStateMachine(IAsyncStateMachine stateMachine)
- {
- this.\u003C\u003Et__builder.SetStateMachine(stateMachine);
- }
- }
- [CompilerGenerated]
- [StructLayout(LayoutKind.Auto)]
- private struct \u003CWriteToPipe\u003Ed__1 : IAsyncStateMachine
- {
- public int \u003C\u003E1__state;
- public AsyncTaskMethodBuilder \u003C\u003Et__builder;
- private TaskAwaiter<string> \u003C\u003Eu__\u0024awaiter1;
- void IAsyncStateMachine.MoveNext()
- {
- int num1 = this.\u003C\u003E1__state;
- try
- {
- TaskAwaiter<string> awaiter;
- int num2;
- if (num1 == 0 || num1 != 1)
- {
- awaiter = new StreamReader((Stream) new MemoryStream()).ReadLineAsync().GetAwaiter();
- if (!awaiter.IsCompleted)
- {
- this.\u003C\u003E1__state = num2 = 1;
- this.\u003C\u003Eu__\u0024awaiter1 = awaiter;
- this.\u003C\u003Et__builder.AwaitUnsafeOnCompleted<TaskAwaiter<string>, Program.\u003CWriteToPipe\u003Ed__1>(ref awaiter, ref this);
- return;
- }
- }
- else
- {
- awaiter = this.\u003C\u003Eu__\u0024awaiter1;
- this.\u003C\u003Eu__\u0024awaiter1 = new TaskAwaiter<string>();
- this.\u003C\u003E1__state = num2 = -1;
- }
- awaiter.GetResult();
- awaiter = new TaskAwaiter<string>();
- Console.WriteLine("Readed!");
- }
- catch (Exception ex)
- {
- this.\u003C\u003E1__state = -2;
- this.\u003C\u003Et__builder.SetException(ex);
- return;
- }
- this.\u003C\u003E1__state = -2;
- this.\u003C\u003Et__builder.SetResult();
- }
- [DebuggerHidden]
- void IAsyncStateMachine.SetStateMachine(IAsyncStateMachine stateMachine)
- {
- this.\u003C\u003Et__builder.SetStateMachine(stateMachine);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement