From 41bba7f8aad8af66d8b4481b39d8622d4fe4f0a9 Mon Sep 17 00:00:00 2001 From: "Mr.Xia" <1424473282@qq.com> Date: Sat, 23 May 2026 17:13:53 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=90=AF=E5=8A=A8=E6=97=B6=E5=90=88?= =?UTF-8?q?=E5=B9=B64=E6=AC=A1=E6=96=87=E4=BB=B6=E8=AF=BB=E5=8F=96?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E4=B8=BA1=E6=AC=A1=EF=BC=8C=E5=8A=A0?= =?UTF-8?q?=E9=80=9F=E5=8F=B3=E9=94=AE=E6=89=93=E5=BC=80=E5=A4=A7=E9=92=BB?= =?UTF-8?q?=E5=B8=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- App.xaml.cs | 110 +++++++++------------------------------------------- 1 file changed, 19 insertions(+), 91 deletions(-) diff --git a/App.xaml.cs b/App.xaml.cs index 0e5bb3c..096172d 100644 --- a/App.xaml.cs +++ b/App.xaml.cs @@ -36,10 +36,25 @@ namespace DrillTools // 防止选择窗口关闭后触发 OnLastWindowClose 导致应用退出 ShutdownMode = ShutdownMode.OnExplicitShutdown; - bool canClearParameters = CanClearDrillTapeParameters(filePath); - bool canGeneratePpDrillTape = CanGeneratePpDrillTape(filePath); - GetMinDiameters(filePath, out double minDrill, out double minSlot, out double minEA); - GetPpSpacing(filePath, out bool isPpDrillTape, out double ppXSpacing, out double ppYSpacing); + // 只读取和解析文件一次,提取所有需要的信息 + string content = CommandTypeFileReader.ReadAllText(filePath); + var viewModel = new MainWindowViewModel + { + IsStartupDrillTapeFile = true, + OriginalFilePath = filePath, + ShouldCheckSortFileOnLoad = false + }; + viewModel.LoadToolsFromDrillTape(content); + + bool canClearParameters = DrillTapeParameterCleaner.CanClearParameters(content); + bool canGeneratePpDrillTape = viewModel.CanGeneratePpDrillTape; + double minDrill = viewModel.MinDrillDiameter; + double minSlot = viewModel.MinSlotDiameter; + double minEA = viewModel.MinEADiameter; + bool isPpDrillTape = viewModel.IsPpDrillTape; + double ppXSpacing = viewModel.PpXSpacing; + double ppYSpacing = viewModel.PpYSpacing; + var selectionWindow = new StartupSelectionWindow(filePath, canClearParameters, canGeneratePpDrillTape, minDrill, minSlot, minEA, isPpDrillTape, ppXSpacing, ppYSpacing); selectionWindow.ShowDialog(); @@ -114,93 +129,6 @@ namespace DrillTools } } - private static bool CanClearDrillTapeParameters(string filePath) - { - try - { - string content = CommandTypeFileReader.ReadAllText(filePath); - return DrillTapeParameterCleaner.CanClearParameters(content); - } - catch - { - return false; - } - } - - private static bool CanGeneratePpDrillTape(string filePath) - { - try - { - var viewModel = new MainWindowViewModel - { - IsStartupDrillTapeFile = true, - OriginalFilePath = filePath, - ShouldCheckSortFileOnLoad = false - }; - - string content = CommandTypeFileReader.ReadAllText(filePath); - viewModel.LoadToolsFromDrillTape(content); - return viewModel.CanGeneratePpDrillTape; - } - catch - { - return false; - } - } - - private static void GetMinDiameters(string filePath, out double minDrillDiameter, out double minSlotDiameter, out double minEADiameter) - { - minDrillDiameter = 0; - minSlotDiameter = 0; - minEADiameter = 0; - - try - { - var viewModel = new MainWindowViewModel - { - ShouldCheckSortFileOnLoad = false - }; - - string content = CommandTypeFileReader.ReadAllText(filePath); - viewModel.LoadToolsFromDrillTape(content); - - if (viewModel.Tools.Count > 0) - { - minDrillDiameter = viewModel.MinDrillDiameter; - minSlotDiameter = viewModel.MinSlotDiameter; - minEADiameter = viewModel.MinEADiameter; - } - } - catch - { - } - } - - private static void GetPpSpacing(string filePath, out bool isPpDrillTape, out double ppXSpacing, out double ppYSpacing) - { - isPpDrillTape = false; - ppXSpacing = 0; - ppYSpacing = 0; - - try - { - var viewModel = new MainWindowViewModel - { - OriginalFilePath = filePath, - ShouldCheckSortFileOnLoad = false - }; - - string content = CommandTypeFileReader.ReadAllText(filePath); - viewModel.LoadToolsFromDrillTape(content); - - isPpDrillTape = viewModel.IsPpDrillTape; - ppXSpacing = viewModel.PpXSpacing; - ppYSpacing = viewModel.PpYSpacing; - } - catch - { - } - } private static void PerformPpDrillTapeGeneration(string filePath) {