示例#1
0
        static void Main(string[] args)
        {
            Params ps = new Params();

            foreach (var arg in args)
            {
                if (!ps.ProcessCommandLineArgument(arg))
                {
                    usage();
                    return;
                }
            }

            var serviceIdentity = ServiceIdentity.ReadFromFile(ps.ServiceFileName);

            if (serviceIdentity == null)
            {
                return;
            }
            if (serviceIdentity.ServiceType != "IronSHT")
            {
                Console.Error.WriteLine("ERROR - Service described by {0} is of type {1}, not IronSHT", ps.ServiceFileName,
                                        serviceIdentity.ServiceType);
                return;
            }

            HiResTimer.Initialize();
            if (ps.Verbose)
            {
                Console.WriteLine("Client process starting {0} threads running for {1} s...", ps.NumThreads, ps.ExperimentDuration);
            }

            Console.WriteLine("[[READY]]");

            // Setup the system
            var setupThreads = Client.StartSetupThreads(ps, serviceIdentity).ToArray();

            setupThreads[0].Join();
            Console.WriteLine("[[SETUP COMPLETE]]");

            // Start the experiment
            var threads = Client.StartExperimentThreads(ps, serviceIdentity).ToArray();

            if (ps.ExperimentDuration == 0)
            {
                threads[0].Join();
            }
            else
            {
                Thread.Sleep((int)ps.ExperimentDuration * 1000);
                Console.Out.WriteLine("[[DONE]]");
                Console.Out.Flush();
                Environment.Exit(0);
            }
        }
示例#2
0
        static void Main(string[] args)
        {
            Params ps = new Params();

            foreach (var arg in args)
            {
                if (!ps.ProcessCommandLineArgument(arg))
                {
                    usage();
                    return;
                }
            }

            if (!ps.Validate())
            {
                usage();
                return;
            }

            var serviceIdentity = ServiceIdentity.ReadFromFile(ps.ServiceFileName);

            if (serviceIdentity == null)
            {
                return;
            }

            HiResTimer.Initialize();
            if (ps.Verbose)
            {
                Console.WriteLine("Client process starting {0} threads running for {1} s...", ps.NumThreads, ps.ExperimentDuration);
            }

            Console.WriteLine("[[READY]]");

            // Start the experiment
            var threads = Client.StartThreads <Client>(ps, serviceIdentity).ToArray();

            if (ps.ExperimentDuration == 0)
            {
                threads[0].Join();
            }
            else
            {
                Thread.Sleep((int)ps.ExperimentDuration * 1000);
                Console.Out.WriteLine("[[DONE]]");
                Console.Out.Flush();
                Environment.Exit(0);
            }
        }