Add a `cancellationToken` for `WebApplication.RunAsync`
- Dominant language
- C#
- Stars
- 38.4k
- Forks
- 10.9k
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 290
Description
## Background and Motivation
Currently, the `WebApplication.RunAsync` does not have a `CancellationToken` parameter, think we should have a `CancellationToken` to forward it to the inner `Host`.
Similar issue: https://github.com/dotnet/aspnetcore/issues/44083
## Proposed API
```diff
namespace Microsoft.AspNetCore.Builder;
public sealed class WebApplication
{
public Task RunAsync([StringSyntax("Uri")] string? url = null);
+ public Task RunAsync([StringSyntax("Uri")] string url, CancenllationToken cancellationToken);
}
```
## Usage Examples
```csharp
using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5));
var builder = WebApplication.CreateSlimBuilder();
var app = builder.Build();
await app.RunAsync("http://localhost:5000", cts.Token);
```
## Alternative Designs
``` diff
- public Task RunAsync([StringSyntax("Uri")] string? url = null);
+ public Task RunAsync([StringSyntax("Uri")] string? url = null, CancenllationToken cancellationToken = default);
```
## Risks
Contributor guide
Assessment
This issue has not been assessed yet.