반응형
string[] filename
#기존 코드
for (int i = 0; i < filename.Length; i++)
{
DataSet _ds = GetData(filename[i]);
_dt.Merge(_ds.Tables[0]);
}
#병열화 코드
Parallel.ForEach(filename, file =>
{
DataSet _ds = GetData2(file);
_dt.Merge(_ds.Tables[0]);
});
기존코드에서 데이터를 처리할때 2시간 걸리던 동작이 병열처리로 30분으로 줄었다.
단점은 데이터를 병열로 처리하다보니 순서가 뒤죽박죽이 된다. 데이터의 순서가 중요한 경우
사용에 주의가 필요하다.
Parallel.For로도 사용할 수 있다.