From 93897305bd1c0abeab2588fac214b545d959f232 Mon Sep 17 00:00:00 2001 From: Jack.Peng <jack.peng@broconcentric.com> Date: 星期一, 12 四月 2021 14:53:32 +0800 Subject: [PATCH] 1.新增多线程。 --- TP/对标产品IMEI_2020-04-09.xlsx | 0 P066.Data/Form1.cs | 202 ++++++++++++++++++++++++++++++++----------------- 2 files changed, 131 insertions(+), 71 deletions(-) diff --git a/P066.Data/Form1.cs b/P066.Data/Form1.cs index 0f5aa21..1b94c63 100644 --- a/P066.Data/Form1.cs +++ b/P066.Data/Form1.cs @@ -11,7 +11,6 @@ using Bro.Common; using Bro.Common.Util; using System.Configuration; - namespace P066.Data { public partial class Form1 : Form @@ -58,11 +57,31 @@ private void btnAnalyze_Click(object sender, EventArgs e) { - + var Start = DateTime.Now; #region 璇诲彇鏂囦欢澶逛笅鐨勬墍鏈夋枃浠讹紝骞跺皢鏂囦欢鎸夌収涓婁笅杩涜鍖哄垎;涓婅〃鏍间负fileInfo1锛屼笅琛ㄦ牸涓篺ileInfo2 - GentClassificationFile(directoryInfo1, out List<FileInfo> fileInfo1, out List<FileInfo> fileInfo2); //fileInfo1澶嶆涓婃枃浠跺す锛宖ileInfo2澶嶆涓嬫枃浠跺す + List<FileInfo> fileInfo1 = new List<FileInfo>(); + List<FileInfo> fileInfo2 = new List<FileInfo>(); + List<FileInfo> fileInfo3 = new List<FileInfo>(); + List<FileInfo> fileInfo4 = new List<FileInfo>(); + Task task1 = new Task(() => + { + if (directoryInfo1 != null) + { + GentClassificationFile(directoryInfo1, out List<FileInfo> FileInfo1, out List<FileInfo> FileInfo2); //fileInfo1澶嶆涓婃枃浠跺す锛宖ileInfo2澶嶆涓嬫枃浠跺す + fileInfo1 = FileInfo1; + fileInfo2 = FileInfo2; + } + if (directoryInfo3 != null) + { + GentClassificationFile(directoryInfo3, out List<FileInfo> FileInfo3, out List<FileInfo> FileInfo4); //fileInfo3鍒濇涓婃枃浠跺す锛宖ileInfo4鍒濇涓嬫枃浠跺す + fileInfo3 = FileInfo3; + fileInfo4 = FileInfo4; + } + }); + task1.Start(); + task1.Wait(); + #endregion - List<ResultData> DataListMerge = new List<ResultData>(); var ListReexaminationSum = new List<ResultData>(); //澶嶆鎶ヨ〃鏁版嵁 var ListPreliminarySum = new List<ResultData>(); //鍒濇鎶ヨ〃鏁版嵁 string filenameDir = ""; @@ -109,86 +128,127 @@ } #endregion - - - #region//灏嗚澶囧垽鏂粨鏋滆緭鍑哄埌CSV鎶ヨ〃涓� - ListReexaminationSum.AddRange(GetClassificationLens(fileInfo1, fileInfo2, DataTipsor)); - var title12 = $"鏃堕棿鎴�,鐩告満搴忓彿,璁惧鍒ゆ柇缁撴灉,缂洪櫡绫诲瀷,璁惧鍚庡鐞嗙粨鏋�,鏈�澶у昂瀵�,浣嶇疆,X,Y,R,瑙掑害"; - var file12 = $"{directoryInfo1.Parent.FullName}\\{filenameDir + "璁惧鍒ゆ柇缁撴灉"}.csv"; - File.AppendAllText(file12, title12, Encoding.UTF8); - File.AppendAllText(file12, "\r\n"); - foreach (var item in DataTipsor) + var tt1 =DateTime.Now; + var task2= Task.Run (() => { - var Lens1 = ListReexaminationSum.FindAll(a => a.TimeTip == item&&a.Lensnumber==1); - writefile.WriteJR(Lens1,item,1,file12); - var Lens2 = ListReexaminationSum.FindAll(a => a.TimeTip == item && a.Lensnumber == 2); - writefile.WriteJR(Lens2,"",2,file12); - var Lens3 = ListReexaminationSum.FindAll(a => a.TimeTip == item && a.Lensnumber == 3); - writefile.WriteJR(Lens3,"",3,file12); - var Lens4 = ListReexaminationSum.FindAll(a => a.TimeTip == item && a.Lensnumber == 4); - writefile.WriteJR(Lens4,"",4,file12); - - } - #endregion + + ListReexaminationSum.AddRange(GetClassificationLens(fileInfo1, fileInfo2, DataTipsor)); + - - - #region//鏍规嵁浜у搧缂栧彿杈撳嚭鎬荤己闄锋姤琛� - if (directoryInfo3!=null) + }); + var task3= Task.Run(() => { - GentClassificationFile(directoryInfo3, out List<FileInfo> fileInfo3, out List<FileInfo> fileInfo4); //fileInfo3鍒濇涓婃枃浠跺す锛宖ileInfo4鍒濇涓嬫枃浠跺す - ListPreliminarySum.AddRange(GetClassificationLens(fileInfo3, fileInfo4, DataTipsor)); - List<ResultData> ListNoClearNub = new List<ResultData>(); //娓呴櫎澶辫触鏁� - List<ResultData> ListMayNub = new List<ResultData>(); //娓呴櫎澶辫触鏁� - CompareFile2(ListReexaminationSum, ListPreliminarySum, DataTipsor, out ListNoClearNub, out ListMayNub); - var title = $"浜у搧缂栧彿,闀滃ご缂栧彿,鎬荤己闄锋暟閲�,璁惧娓呴櫎鏁�,鏈竻闄ゆ暟,澶嶆澶氭鍑烘暟"; - var file = $"{directoryInfo1.Parent.FullName}\\{filenameDir + "缂洪櫡鎬绘暟鎶ヨ〃"}.csv"; - File.AppendAllText(file, title, Encoding.UTF8); - File.AppendAllText(file, "\r\n"); + ListPreliminarySum.AddRange(GetClassificationLens(fileInfo3, fileInfo4, DataTipsor)); //鍚堝苟鍒濇涓婁笅鎶ヨ〃锛岃緭鍑哄悎骞跺悗鏁版嵁 + + + }); + + Task.WaitAll(task2, task3); + + + var task5 = Task.Run(() => + { + + #region//灏嗚澶囧垽鏂粨鏋滆緭鍑哄埌CSV鎶ヨ〃涓� + //ListReexaminationSum.AddRange(GetClassificationLens(fileInfo1, fileInfo2, DataTipsor)); + var title12 = $"鏃堕棿鎴�,鐩告満搴忓彿,璁惧鍒ゆ柇缁撴灉,缂洪櫡绫诲瀷,璁惧鍚庡鐞嗙粨鏋�,鏈�澶у昂瀵�,浣嶇疆,X,Y,R,瑙掑害"; + var file12 = $"{directoryInfo1.Parent.FullName}\\{filenameDir + "璁惧鍒ゆ柇缁撴灉"}.csv"; + File.AppendAllText(file12, title12, Encoding.UTF8); + File.AppendAllText(file12, "\r\n"); foreach (var item in DataTipsor) { - //鎬荤己闄锋暟 - var ListLenSum1 = ListPreliminarySum.FindAll(a => a.TimeTip == item && a.Lensnumber == 1 && a.DefectType == "鐧界偣" && !a.Result); - var listlensum1 = ListLenSum1.Count; - //鏈竻闄ゆ暟 - var ListLenNoClearSum1 = ListNoClearNub.FindAll(a => a.TimeTip == item && a.Lensnumber == 1 && a.DefectType == "鐧界偣" && !a.Result); - var listlennoclearsum1 = ListLenNoClearSum1.Count; - //璁惧娓呴櫎鏁� - var listlenclearsum1 = listlensum1 - listlennoclearsum1; - //澶嶆澶氭鍑烘暟 - var ListLenMaySum1 = ListMayNub.FindAll(a => a.TimeTip == item && a.Lensnumber == 1 && a.DefectType == "鐧界偣" && !a.Result); - var listlenmaysum1 = ListLenMaySum1.Count; - - var content1 = $"{item},{1},{listlensum1},{listlenclearsum1},{listlennoclearsum1},{listlenmaysum1}"; - File.AppendAllText(file, content1, Encoding.UTF8); - File.AppendAllText(file, "\r\n"); - + var Lens1 = ListReexaminationSum.FindAll(a => a.TimeTip == item && a.Lensnumber == 1); + writefile.WriteJR(Lens1, item, 1, file12); for (int i = 2; i < 5; i++) { - //鎬荤己闄锋暟 - var ListLenSum = ListPreliminarySum.FindAll(a => a.TimeTip == item && a.Lensnumber == i && a.DefectType == "鐧界偣" && !a.Result); - var listlensum = ListLenSum.Count; - //鏈竻闄ゆ暟 - var ListLenNoClearSum = ListNoClearNub.FindAll(a => a.TimeTip == item && a.Lensnumber == i && a.DefectType == "鐧界偣" && !a.Result); - var listlennoclearsum = ListLenNoClearSum.Count; - //璁惧娓呴櫎鏁� - var listlenclearsum = listlensum - listlennoclearsum; - //澶嶆澶氭鍑烘暟 - var ListLenMaySum = ListMayNub.FindAll(a => a.TimeTip == item && a.Lensnumber == i && a.DefectType == "鐧界偣" && !a.Result); - var listlenmaysum = ListLenMaySum.Count; - var content = $"{""},{i},{listlensum},{listlenclearsum},{listlennoclearsum},{listlenmaysum}"; - File.AppendAllText(file, content, Encoding.UTF8); - File.AppendAllText(file, "\r\n"); + var Lens = ListReexaminationSum.FindAll(a => a.TimeTip == item && a.Lensnumber == i); + writefile.WriteJR(Lens, "", i, file12); } + } - directoryInfo3 = null; - } - - #endregion + #endregion + }); + var task6 = Task.Run(() => + { + + #region//鏍规嵁浜у搧缂栧彿杈撳嚭鎬荤己闄锋姤琛� + if (directoryInfo3 != null) + { + //GentClassificationFile(directoryInfo3, out List<FileInfo> fileInfo3, out List<FileInfo> fileInfo4); //fileInfo3鍒濇涓婃枃浠跺す锛宖ileInfo4鍒濇涓嬫枃浠跺す + //ListPreliminarySum.AddRange(GetClassificationLens(fileInfo3, fileInfo4, DataTipsor)); //鍚堝苟鍒濇涓婁笅鎶ヨ〃锛岃緭鍑哄悎骞跺悗鏁版嵁 + List<ResultData> ListNoClearNub = new List<ResultData>(); //娓呴櫎澶辫触鏁� + List<ResultData> ListMayNub = new List<ResultData>(); //娓呴櫎澶辫触鏁� + CompareFile2(ListReexaminationSum, ListPreliminarySum, DataTipsor, out ListNoClearNub, out ListMayNub); + + var title = $"浜у搧缂栧彿,闀滃ご缂栧彿,鎬荤己闄锋暟閲�,璁惧娓呴櫎鏁�,鏈竻闄ゆ暟,澶嶆澶氭鍑烘暟"; + var file = $"{directoryInfo1.Parent.FullName}\\{filenameDir + "缂洪櫡鎬绘暟鎶ヨ〃"}.csv"; + File.AppendAllText(file, title, Encoding.UTF8); + File.AppendAllText(file, "\r\n"); + foreach (var item in DataTipsor) + { + //鎬荤己闄锋暟 + var ListLenSum1 = ListPreliminarySum.FindAll(a => a.TimeTip == item && a.Lensnumber == 1 && a.DefectType == "鐧界偣" && !a.Result); + var listlensum1 = ListLenSum1.Count; + //鏈竻闄ゆ暟 + var ListLenNoClearSum1 = ListNoClearNub.FindAll(a => a.TimeTip == item && a.Lensnumber == 1 && a.DefectType == "鐧界偣" && !a.Result); + var listlennoclearsum1 = ListLenNoClearSum1.Count; + //璁惧娓呴櫎鏁� + var listlenclearsum1 = listlensum1 - listlennoclearsum1; + //澶嶆澶氭鍑烘暟 + var ListLenMaySum1 = ListMayNub.FindAll(a => a.TimeTip == item && a.Lensnumber == 1 && a.DefectType == "鐧界偣" && !a.Result); + var listlenmaysum1 = ListLenMaySum1.Count; + + var content1 = $"{item},{1},{listlensum1},{listlenclearsum1},{listlennoclearsum1},{listlenmaysum1}"; + File.AppendAllText(file, content1, Encoding.UTF8); + File.AppendAllText(file, "\r\n"); + + for (int i = 2; i < 5; i++) + { + //鎬荤己闄锋暟 + var ListLenSum = ListPreliminarySum.FindAll(a => a.TimeTip == item && a.Lensnumber == i && a.DefectType == "鐧界偣" && !a.Result); + var listlensum = ListLenSum.Count; + //鏈竻闄ゆ暟 + var ListLenNoClearSum = ListNoClearNub.FindAll(a => a.TimeTip == item && a.Lensnumber == i && a.DefectType == "鐧界偣" && !a.Result); + var listlennoclearsum = ListLenNoClearSum.Count; + //璁惧娓呴櫎鏁� + var listlenclearsum = listlensum - listlennoclearsum; + //澶嶆澶氭鍑烘暟 + var ListLenMaySum = ListMayNub.FindAll(a => a.TimeTip == item && a.Lensnumber == i && a.DefectType == "鐧界偣" && !a.Result); + var listlenmaysum = ListLenMaySum.Count; + var content = $"{""},{i},{listlensum},{listlenclearsum},{listlennoclearsum},{listlenmaysum}"; + File.AppendAllText(file, content, Encoding.UTF8); + File.AppendAllText(file, "\r\n"); + } + } + directoryInfo3 = null; + } + + #endregion + }); + + + Task.WaitAll(new Task[]{ task5, task6}); + + + + + + var tt2 =DateTime.Now; + var sumtt = tt2 - tt1; + + + + + + + + var End = DateTime.Now; + var Time = Start - End; + MessageBox.Show("澶勭悊瀹屾瘯锛岀敤鏃�"+Convert.ToString(Time)); } #region 涓や釜琛ㄦ牸杩涜姣旇緝,濡傛灉涓や釜琛ㄦ牸涓湁璁惧鍒ゆ柇鏍囧噯涓嶇粺涓�锛屽皢璇ョ偣鍙樹负NG锛屽垹闄や袱涓〃鏍间腑NG鐐圭浉杩戠殑鏈�灏忓昂瀵哥偣. diff --git "a/TP/\345\257\271\346\240\207\344\272\247\345\223\201IMEI_2020-04-09.xlsx" "b/TP/\345\257\271\346\240\207\344\272\247\345\223\201IMEI_2020-04-09.xlsx" new file mode 100644 index 0000000..d46c3a6 --- /dev/null +++ "b/TP/\345\257\271\346\240\207\344\272\247\345\223\201IMEI_2020-04-09.xlsx" Binary files differ -- Gitblit v1.8.0