Refactor process tracking to handle null slots and compact array

This commit is contained in:
2025-05-25 20:51:29 +02:00
parent b5446516e4
commit 886258e4c3

View File

@@ -120,14 +120,32 @@ internal static class Program {
}
private static void Track(Process process) {
// First find the first null slot
int firstNullIndex = -1;
for (int i = 0; i < NumProc; i++) {
if (windows[i] == null) {
windows[i] = process;
Console.WriteLine(
$"Added {process.ProcessName} to tracked windows at index {i}");
return;
firstNullIndex = i;
break;
}
}
if (firstNullIndex == -1) {
Console.WriteLine("No slots available for tracking");
return;
}
// Compact the array by shifting non-null elements to the left
for (int i = firstNullIndex + 1; i < NumProc; i++) {
if (windows[i] != null) {
windows[firstNullIndex] = windows[i];
windows[i] = null;
firstNullIndex++;
}
}
// Add the new process at the first null slot
windows[firstNullIndex] = process;
Console.WriteLine($"Added {process.ProcessName} to tracked windows at index {firstNullIndex}");
}
private static void TrackWows() {