| Код | StartTime=DateTime.Now; string str; string PrintNumPack; int NumPack; int TekNum; int BoxCount=5120;
StreamReader InFile=new StreamReader(FName); StreamWriter ZakFile=new StreamWriter(ExeNameT+"\\Krist_ZAK.txt");
TBReport.Text+=ExeNameT+"\\Krist_ZAK.txt"+Environment.NewLine; StatBar.Maximum=CountLine; StatBar.Value=0; while((str=InFile.ReadLine())!=null) { TekNum=Convert.ToInt32(str.Substring(0,8)); NumPack=(TekNum-1)/BoxCount+1; PrintNumPack=LeadZero(NumPack.ToString(),4); str=str.Substring(0,9)+NumZak+";"+PrintNumPack+";"; ZakFile.WriteLine(str); if(TekNum%1000==0) { StatBar.Value+=1000; Application.DoEvents(); } } ZakFile.Close(); InFile.Close(); EndTime=DateTime.Now; TotalTime=EndTime.Subtract(StartTime); TBReport.Text+="Выполнено за: "+TotalTime.ToString()+Environment.NewLine;
|
InFile состоит из 20 000 000 строк по 27 символов каждый. Программа виснет при ZakFile.Close() - примерно на пару минут. А потом работа возобновляется. Почему и как от этого избавиться?! |