diff --git a/src/Prism.Core/Commands/AsyncDelegateCommand.cs b/src/Prism.Core/Commands/AsyncDelegateCommand.cs
index f424f7b4e7..0126fc9310 100644
--- a/src/Prism.Core/Commands/AsyncDelegateCommand.cs
+++ b/src/Prism.Core/Commands/AsyncDelegateCommand.cs
@@ -163,6 +163,14 @@ public AsyncDelegateCommand EnableParallelExecution()
return this;
}
+ ///
+ /// Sets the based on the specified timeout.
+ ///
+ /// A specified timeout.
+ /// The current instance of .
+ public AsyncDelegateCommand CancelAfter(TimeSpan timeout) =>
+ CancellationTokenSourceFactory(() => new CancellationTokenSource(timeout).Token);
+
///
/// Provides a delegate callback to provide a default CancellationToken when the Command is invoked.
///
diff --git a/src/Prism.Core/Commands/AsyncDelegateCommand{T}.cs b/src/Prism.Core/Commands/AsyncDelegateCommand{T}.cs
index 71a74a1c2d..2a5e163f27 100644
--- a/src/Prism.Core/Commands/AsyncDelegateCommand{T}.cs
+++ b/src/Prism.Core/Commands/AsyncDelegateCommand{T}.cs
@@ -187,6 +187,14 @@ public AsyncDelegateCommand EnableParallelExecution()
return this;
}
+ ///
+ /// Sets the based on the specified timeout.
+ ///
+ /// A specified timeout.
+ /// The current instance of .
+ public AsyncDelegateCommand CancelAfter(TimeSpan timeout) =>
+ CancellationTokenSourceFactory(() => new CancellationTokenSource(timeout).Token);
+
///
/// Provides a delegate callback to provide a default CancellationToken when the Command is invoked.
///