Add build cancellation

This commit is contained in:
Matt Parker
2025-08-03 00:27:33 +10:00
parent 22f11a5587
commit 9a3fe17b88
3 changed files with 12 additions and 4 deletions

View File

@@ -17,6 +17,9 @@
<MudButton Variant="Variant.Outlined" Size="Size.Small" Color="Color.Primary" OnClick="@CleanSolution">Clean</MudButton>
<MudButton Variant="Variant.Outlined" Size="Size.Small" Color="Color.Primary" OnClick="@RestoreSolution">Restore</MudButton>
</MudButtonGroup>
<MudButton OnClick="@CancelBuild">
<MudIcon Icon="@Icons.Material.Filled.Cancel" Size="Size.Medium" Color="Color.Default" />
</MudButton>
<MudSpacer />
<MudStack Row="true" AlignItems="AlignItems.Center">
<MudButton OnClick="@TerminalDrawerToggle">
@@ -88,6 +91,7 @@
}
}
private CancellationTokenSource _cancellationTokenSource = null!;
private async Task BuildSolution() => await MsBuildSolution(BuildType.Build);
private async Task RebuildSolution() => await MsBuildSolution(BuildType.Rebuild);
private async Task CleanSolution() => await MsBuildSolution(BuildType.Clean);
@@ -95,8 +99,10 @@
private async Task MsBuildSolution(BuildType buildType)
{
if (AppState.IdeSettings.OpenTerminalOnBuildRebuildRestore) _terminalDrawerOpen = true;
await BuildService.MsBuildSolutionAsync(_solutionFilePath!, buildType);
_cancellationTokenSource = new CancellationTokenSource();
await BuildService.MsBuildSolutionAsync(_solutionFilePath!, buildType, _cancellationTokenSource.Token);
}
private async Task CancelBuild() => await _cancellationTokenSource.CancelAsync();
private async Task OpenSettingsDialog()
{