diff --git a/src/process/CommandTask.cs b/src/process/CommandTask.cs
index a6c3f5c..186023a 100644
--- a/src/process/CommandTask.cs
+++ b/src/process/CommandTask.cs
@@ -8,7 +8,7 @@ namespace Geekeey.Process;
///
/// Represents an asynchronous execution of a command.
///
-public sealed partial class CommandTask : IDisposable
+public partial class CommandTask : IDisposable
{
private readonly Process _process;
@@ -19,6 +19,14 @@ public sealed partial class CommandTask : IDisposable
ProcessId = processId;
}
+ ///
+ /// Finalizer to ensure resources are released.
+ ///
+ ~CommandTask()
+ {
+ Dispose();
+ }
+
///
/// Underlying task.
///
@@ -79,10 +87,11 @@ public sealed partial class CommandTask : IDisposable
public void Dispose()
{
Task.Dispose();
+ GC.SuppressFinalize(this);
}
}
-public sealed partial class CommandTask
+public partial class CommandTask
{
///
/// Converts the command task into a regular task.
@@ -91,4 +100,4 @@ public sealed partial class CommandTask
{
return commandTask.Task;
}
-}
+}
\ No newline at end of file