fork download
  1. using System;
  2. using System.Threading;
  3. using System.Threading.Tasks;
  4.  
  5. public class Test {
  6. public static void Main() {
  7. OutputThreadID("Main A");
  8. Async1().Wait();
  9. OutputThreadID("Main B");
  10. Async2().Wait();
  11. OutputThreadID("Main C");
  12. }
  13. private static async Task Async1() {
  14. OutputThreadID("Async1 A");
  15. await Task.Delay(100);
  16. OutputThreadID("Async1 B");
  17. }
  18. private static async Task Async2() {
  19. OutputThreadID("Async2 A");
  20. await Task.Delay(100).ConfigureAwait(true);
  21. OutputThreadID("Async2 B");
  22. }
  23. private static void OutputThreadID(string name) {
  24. Console.WriteLine($"{name}(ID={Thread.CurrentThread.ManagedThreadId})");
  25. }
  26. }
  27.  
Success #stdin #stdout 0.03s 17440KB
stdin
Standard input is empty
stdout
Main A(ID=1)
Async1 A(ID=1)
Async1 B(ID=5)
Main B(ID=1)
Async2 A(ID=1)
Async2 B(ID=5)
Main C(ID=1)