fork download
  1. using System;
  2. using System.Threading;
  3.  
  4. namespace TestProject
  5. {
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. CreateInstanceOfA();
  11. //Console.ReadKey();
  12. }
  13.  
  14. static void CreateInstanceOfA()
  15. {
  16. var a = new A();
  17. }
  18. }
  19.  
  20. interface IA
  21. {
  22. void PrintHello(int i);
  23. }
  24.  
  25. class A : IA
  26. {
  27. private B _b;
  28.  
  29. public A()
  30. {
  31. _b = new B(this);
  32. }
  33.  
  34. ~A()
  35. {
  36. Console.WriteLine("Instance of class A had been garbage-collected.");
  37. }
  38.  
  39. public void PrintHello(int i)
  40. {
  41. Console.WriteLine("Hello from class A! Current iterations count: {0}", i);
  42. }
  43. }
  44.  
  45. class B
  46. {
  47. private IA _a;
  48. private bool _working;
  49.  
  50. public B(IA a)
  51. {
  52. _working = true;
  53. _a = a;
  54.  
  55. var workingThread = new Thread(ThreadProc);
  56. workingThread.Start();
  57. }
  58.  
  59. ~B()
  60. {
  61. _working = false;
  62. Console.WriteLine("Instance of class B had been garbage-collected.");
  63. }
  64.  
  65. private void ThreadProc()
  66. {
  67. const int MAX_ITERATIONS_COUNT = 100;
  68.  
  69. int i = 0;
  70. while (_working && i++ < MAX_ITERATIONS_COUNT)
  71. {
  72. _a.PrintHello(i);
  73. Thread.Sleep(100);
  74. }
  75. }
  76. }
  77. }
  78.  
Success #stdin #stdout 0.03s 34920KB
stdin
Standard input is empty
stdout
Hello from class A! Current iterations count: 1
Hello from class A! Current iterations count: 2
Hello from class A! Current iterations count: 3
Hello from class A! Current iterations count: 4
Hello from class A! Current iterations count: 5
Hello from class A! Current iterations count: 6
Hello from class A! Current iterations count: 7
Hello from class A! Current iterations count: 8
Hello from class A! Current iterations count: 9
Hello from class A! Current iterations count: 10
Hello from class A! Current iterations count: 11
Hello from class A! Current iterations count: 12
Hello from class A! Current iterations count: 13
Hello from class A! Current iterations count: 14
Hello from class A! Current iterations count: 15
Hello from class A! Current iterations count: 16
Hello from class A! Current iterations count: 17
Hello from class A! Current iterations count: 18
Hello from class A! Current iterations count: 19
Hello from class A! Current iterations count: 20
Hello from class A! Current iterations count: 21
Hello from class A! Current iterations count: 22
Hello from class A! Current iterations count: 23
Hello from class A! Current iterations count: 24
Hello from class A! Current iterations count: 25
Hello from class A! Current iterations count: 26
Hello from class A! Current iterations count: 27
Hello from class A! Current iterations count: 28
Hello from class A! Current iterations count: 29
Hello from class A! Current iterations count: 30
Hello from class A! Current iterations count: 31
Hello from class A! Current iterations count: 32
Hello from class A! Current iterations count: 33
Hello from class A! Current iterations count: 34
Hello from class A! Current iterations count: 35
Hello from class A! Current iterations count: 36
Hello from class A! Current iterations count: 37
Hello from class A! Current iterations count: 38
Hello from class A! Current iterations count: 39
Hello from class A! Current iterations count: 40
Hello from class A! Current iterations count: 41
Hello from class A! Current iterations count: 42
Hello from class A! Current iterations count: 43
Hello from class A! Current iterations count: 44
Hello from class A! Current iterations count: 45
Hello from class A! Current iterations count: 46
Hello from class A! Current iterations count: 47
Hello from class A! Current iterations count: 48
Hello from class A! Current iterations count: 49
Hello from class A! Current iterations count: 50
Hello from class A! Current iterations count: 51
Hello from class A! Current iterations count: 52
Hello from class A! Current iterations count: 53
Hello from class A! Current iterations count: 54
Hello from class A! Current iterations count: 55
Hello from class A! Current iterations count: 56
Hello from class A! Current iterations count: 57
Hello from class A! Current iterations count: 58
Hello from class A! Current iterations count: 59
Hello from class A! Current iterations count: 60
Hello from class A! Current iterations count: 61
Hello from class A! Current iterations count: 62
Hello from class A! Current iterations count: 63
Hello from class A! Current iterations count: 64
Hello from class A! Current iterations count: 65
Hello from class A! Current iterations count: 66
Hello from class A! Current iterations count: 67
Hello from class A! Current iterations count: 68
Hello from class A! Current iterations count: 69
Hello from class A! Current iterations count: 70
Hello from class A! Current iterations count: 71
Hello from class A! Current iterations count: 72
Hello from class A! Current iterations count: 73
Hello from class A! Current iterations count: 74
Hello from class A! Current iterations count: 75
Hello from class A! Current iterations count: 76
Hello from class A! Current iterations count: 77
Hello from class A! Current iterations count: 78
Hello from class A! Current iterations count: 79
Hello from class A! Current iterations count: 80
Hello from class A! Current iterations count: 81
Hello from class A! Current iterations count: 82
Hello from class A! Current iterations count: 83
Hello from class A! Current iterations count: 84
Hello from class A! Current iterations count: 85
Hello from class A! Current iterations count: 86
Hello from class A! Current iterations count: 87
Hello from class A! Current iterations count: 88
Hello from class A! Current iterations count: 89
Hello from class A! Current iterations count: 90
Hello from class A! Current iterations count: 91
Hello from class A! Current iterations count: 92
Hello from class A! Current iterations count: 93
Hello from class A! Current iterations count: 94
Hello from class A! Current iterations count: 95
Hello from class A! Current iterations count: 96
Hello from class A! Current iterations count: 97
Hello from class A! Current iterations count: 98
Hello from class A! Current iterations count: 99
Hello from class A! Current iterations count: 100