private async void Generater_Click(object sender, EventArgs e) { string dir = ".\\" + textBox1.Text + " 회 데이터"; DirectoryInfo di = new DirectoryInfo(dir); if (di.Exists == false) { di.Create(); } RandomDataGen Making = new RandomDataGen(); RandomDataGen.strFilePath = dir + $"\\{ DateTime.Now.ToString("yyyy - MM - dd - HH - mm - ss")} -"; CStopWatch speedWatch = new CStopWatch(); CStopWatch weavingWatch = new CStopWatch(); CStopWatch intervalWatch = new CStopWatch(); long SpeedElapsedTime; long WeavingElapsedTime; long IntervalElapsedTime; Task <int> speedfile = null; Task <int> intervaltestfile = null; Task <int> Weavingtestfile = null; if (SpeedCheck.CheckState == CheckState.Checked) { speedWatch.Start(); speedfile = Making.speedfile(Convert.ToInt32(textBox1.Text)); } if (DistanceCheck.CheckState == CheckState.Checked) { weavingWatch.Start(); Weavingtestfile = Making.Weavingtestfile(Convert.ToInt32(textBox1.Text)); } if (IntervalCheck.CheckState == CheckState.Checked) { intervalWatch.Start(); intervaltestfile = Making.intervaltestfile(Convert.ToInt32(textBox1.Text)); } if (speedfile != null) { await speedfile; SpeedElapsedTime = speedWatch.GetElapsedTime(CStopWatch.TIME_UNIT.MICROSECOND, true); //타임끝 label1.Text = SpeedElapsedTime.ToString() + " μs"; } if (Weavingtestfile != null) { await Weavingtestfile; WeavingElapsedTime = weavingWatch.GetElapsedTime(CStopWatch.TIME_UNIT.MICROSECOND, true); //타임끝 label2.Text = WeavingElapsedTime.ToString() + " μs"; } if (intervaltestfile != null) { await intervaltestfile; IntervalElapsedTime = intervalWatch.GetElapsedTime(CStopWatch.TIME_UNIT.MICROSECOND, true); //타임끝 label3.Text = IntervalElapsedTime.ToString() + " μs"; } GC.Collect(); GC.WaitForPendingFinalizers(); MessageBox.Show("완료"); }