Fixed possible crash issues

pull/6443/head
2dust 2025-01-05 17:12:51 +08:00
parent 038161527f
commit 7c1e5a3cba
1 changed files with 20 additions and 7 deletions

View File

@ -81,6 +81,7 @@ public static class ProcUtils
return; return;
} }
var procId = review ? proc?.Id : null;
var fileName = review ? proc?.MainModule?.FileName : null; var fileName = review ? proc?.MainModule?.FileName : null;
var processName = review ? proc?.ProcessName : null; var processName = review ? proc?.ProcessName : null;
@ -90,15 +91,27 @@ public static class ProcUtils
try { proc?.Dispose(); } catch (Exception ex) { Logging.SaveLog(_tag, ex); } try { proc?.Dispose(); } catch (Exception ex) { Logging.SaveLog(_tag, ex); }
await Task.Delay(300); await Task.Delay(300);
if (review && fileName != null) if (review && procId != null && fileName != null)
{ {
var proc2 = Process.GetProcessesByName(processName) try
.FirstOrDefault(t => t.MainModule?.FileName == fileName);
if (proc2 != null)
{ {
Logging.SaveLog($"{_tag}, KillProcess not completing the job"); var lstProc = Process.GetProcessesByName(processName);
foreach (var proc2 in lstProc)
{
if (proc2.Id == procId)
{
Logging.SaveLog($"{_tag}, KillProcess not completing the job, procId");
await ProcessKill(proc2, false); await ProcessKill(proc2, false);
proc2 = null; }
if (proc2.MainModule != null && proc2.MainModule?.FileName == fileName)
{
Logging.SaveLog($"{_tag}, KillProcess not completing the job, fileName");
}
}
}
catch (Exception ex)
{
Logging.SaveLog(_tag, ex);
} }
} }
} }