현재 어떤 기능을 쓰레드로 가동하고 있습니다.
해당 기능의 코드입니다.
IEnumerable<string> caselines = File.ReadAllLines(openFileDialog1.FileName).Reverse();
foreach (string caseline in caselines)
{
var co = caseline.Split(',');
double co0 = Convert.ToDouble(co[0]);
double co1 = Convert.ToDouble(co[1]);
double co2 = Convert.ToDouble(co[2]);
double co3 = Convert.ToDouble(co[3]);
double co4 = Convert.ToDouble(co[4]);
double co5 = Convert.ToDouble(co[5]);
string co6 = co[6];
if (co6 == minDateTime || (Convert.ToDateTime(co[6]) >= Convert.ToDateTime(minDateTime) && Convert.ToDateTime(co[6]) <= Convert.ToDateTime(maxDateTime)))
{
lists.Add(co0.ToString());
lists.Add(co1.ToString());
lists.Add(co2.ToString());
lists.Add(co3.ToString());
lists.Add(co4.ToString());
lists.Add(co5.ToString());
lists.Add(co[6]);
}
else if (Convert.ToDateTime(co6) > Convert.ToDateTime(maxDateTime))
{
break;
}
}
searchProgressBar.Maximum = lists.Count() / 7;
searchDataNumber.Text = (lists.Count() / 7).ToString();
int a = 0;
foreach (string caseline2 in caselines)
{
var cols = caseline2.Split(',');
double cols0 = Convert.ToDouble(cols[0]);
double cols1 = Convert.ToDouble(cols[1]);
double cols2 = Convert.ToDouble(cols[2]);
double cols3 = Convert.ToDouble(cols[3]);
double cols4 = Convert.ToDouble(cols[4]);
double cols5 = Convert.ToDouble(cols[5]);
string cols6 = cols[6];
if (cols6 == minDateTime || (Convert.ToDateTime(cols[6]) >= Convert.ToDateTime(minDateTime) && Convert.ToDateTime(cols[6]) <= Convert.ToDateTime(maxDateTime)))
{
dataGridView2.Rows.Add();
dataGridView2.Rows[a].Cells[0].Value = cols0;
dataGridView2.Rows[a].Cells[1].Value = cols1;
dataGridView2.Rows[a].Cells[2].Value = cols2;
dataGridView2.Rows[a].Cells[3].Value = cols3;
dataGridView2.Rows[a].Cells[4].Value = cols4;
dataGridView2.Rows[a].Cells[5].Value = cols5;
dataGridView2.Rows[a].Cells[6].Value = cols[6];
searchProgressBar.PerformStep();
Application.DoEvents();
a++;
}
진행하다 보면 속도가 갑자기 느려지는 데 이 때 dataGridView2 를 한 번 키고 꺼주면 속도가 다시 올라간 후 그 속도로 유지됩니다.
원인이 무엇인가요 ??
속도가 느려지는 원인은 UI 에 표시하기 때문일 것으로 추측되지만 표를 끄고 있기 때문에 이 추측은 신빙성이 낮아 보여서 도무지 알 길이 없네요..
[최초 등록일: ]
[최종 수정일: 8/30/2017]