public void StartSingleTest(string filepath, int index, int totalTestSeconds = 10000, int recordInterval = 500) { testConfig config = testConfigSet[index]; int recordTimes = totalTestSeconds / recordInterval; if (Directory.Exists(filepath) == false) {// if dir not exist, create it! Directory.CreateDirectory(filepath); } TextWriter fwrite = File.CreateText(filepath + config.GenerateFileName(index.ToString())); //!!!! HydraClientBenchmark clientBenchmark = new HydraClientBenchmark(config.maxOutgoing, new KeyValueStreams(this.streamConfig)); clientBenchmark.Start(); Thread.Sleep(3000); //record after 3 second for (int i = 0; i < recordTimes; i++) { clientBenchmark.DumpToFile(fwrite); REPORTER("{0}/{1}", i + 1, recordTimes); Thread.Sleep(recordInterval); //get every second } fwrite.Close(); clientBenchmark.KillAllThread(); }