using System; using System.Threading; namespace TestProject { class Program { static void Main(string[] args) { CreateInstanceOfA(); //Console.ReadKey(); } static void CreateInstanceOfA() { var a = new A(); } } interface IA { void PrintHello(int i); } class A : IA { private B _b; public A() { _b = new B(this); } ~A() { Console.WriteLine("Instance of class A had been garbage-collected."); } public void PrintHello(int i) { Console.WriteLine("Hello from class A! Current iterations count: {0}", i); } } class B { private IA _a; private bool _working; public B(IA a) { _working = true; _a = a; var workingThread = new Thread(ThreadProc); workingThread.Start(); } ~B() { _working = false; Console.WriteLine("Instance of class B had been garbage-collected."); } private void ThreadProc() { const int MAX_ITERATIONS_COUNT = 100; int i = 0; while (_working && i++ < MAX_ITERATIONS_COUNT) { _a.PrintHello(i); Thread.Sleep(100); } } } }
Standard input is empty
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