static void Main(string[] args) { Program program = new Program(); Thread thread = new Thread(new ParameterizedThreadStart(program.Method)); ITracer tracer = new Tracer.Tracer(); Foo foo = new Foo(tracer); foo.MyMethod(); foo.MyMethod2(); thread.Start(tracer); thread.Join(); XmlSerializer xmlTracerSerializer = new XmlSerializer(); JsonTracerSerializer jsonTracerSerializer = new JsonTracerSerializer(); TraceResult traceResult = tracer.GetTraceResult(); string xml = xmlTracerSerializer.Serialize(traceResult); string json = jsonTracerSerializer.Serialize(traceResult); FileSaver fs = new FileSaver("trace.json"); fs.Print(xml); fs.Print(json); ConsolePrinter cp = new ConsolePrinter(); cp.Print(xml); cp.Print(json); Console.ReadKey(); }