static void Main()

in src/LongRunningTests/ParallelStressTest/Program.cs [26:81]


        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Must specify a crash dump to inspect.");

                if (Debugger.IsAttached)
                    Debugger.Break();
                Environment.Exit(1);
            }

            using DataTarget dt = DataTarget.LoadDump(args[0]);
            using (ClrRuntime runtime = dt.ClrVersions.Single().CreateRuntime())
            {
                _expectedObjects = runtime.Heap.EnumerateObjects().ToArray();
                _segments = runtime.Heap.Segments.ToArray();
            }

            if (BackgroundClear)
            {
                Thread t = new Thread(ClearThreadProc);
                t.Start();
            }

            TimeSpan elapsed = default;
            for (int i = 0; i < Iterations; i++)
            {
                Console.Write($"\rIteration: {i + 1:n0} {elapsed}");

                dt.DataReader.FlushCachedData();
                using ClrRuntime runtime = dt.ClrVersions.Single().CreateRuntime();

                lock (_sync)
                    _runtimeForClearing = runtime;

                Thread[] threads = new Thread[Threads];

                for (int j = 0; j < Threads; j++)
                    threads[j] = CreateAndStartThread(runtime);

                Stopwatch sw = new Stopwatch();
                sw.Start();
                _event.Set();

                foreach (Thread thread in threads)
                    thread.Join();

                sw.Stop();
                elapsed = sw.Elapsed;

                lock (_sync)
                    _runtimeForClearing = null;

                _event.Reset();
            }
        }