fork download
  1. using System;
  2. using System.Threading;
  3. using System.Threading.Tasks;
  4.  
  5. public class Test
  6. {
  7. public static void Main()
  8. {
  9. // your code goes here
  10. Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
  11. Console.WriteLine("//////");
  12. A().GetAwaiter().GetResult();
  13. Console.WriteLine("//////");
  14. Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
  15. //Console.ReadLine();
  16. }
  17.  
  18. public static async Task A(){
  19. var c = SynchronizationContext.Current;
  20. Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
  21. await Task.Delay(1);
  22. Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
  23.  
  24. c.Post(state =>{Console.WriteLine("asdf");}, null);
  25. }
  26. }
Runtime error #stdin #stdout #stderr 0.02s 337920KB
stdin
Standard input is empty
stdout
1
//////
1
5
stderr
Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance of an object
  at Test+<A>c__async0.MoveNext () [0x00094] in <25f1dbeb23ec40cdb7e5c520c632b432>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 
  at Test.Main () [0x00024] in <25f1dbeb23ec40cdb7e5c520c632b432>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
  at Test+<A>c__async0.MoveNext () [0x00094] in <25f1dbeb23ec40cdb7e5c520c632b432>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 
  at Test.Main () [0x00024] in <25f1dbeb23ec40cdb7e5c520c632b432>:0