From ba7cc3d3feaf5774dccb4ab1f28f07f4faa7c286 Mon Sep 17 00:00:00 2001 From: Matt Parker <61717342+MattParkerDev@users.noreply.github.com> Date: Thu, 31 Jul 2025 20:18:54 +1000 Subject: [PATCH] use async build --- .../Features/Build/BuildService.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/SharpIDE.Application/Features/Build/BuildService.cs b/src/SharpIDE.Application/Features/Build/BuildService.cs index 24e23aa..088b597 100644 --- a/src/SharpIDE.Application/Features/Build/BuildService.cs +++ b/src/SharpIDE.Application/Features/Build/BuildService.cs @@ -25,10 +25,19 @@ public class BuildService hostServices: null, flags: BuildRequestDataFlags.None); - await Task.Run(() => + await Task.Run(async () => { + var buildCompleteTcs = new TaskCompletionSource(); + BuildManager.DefaultBuildManager.BeginBuild(buildParameters); + var buildResult2 = BuildManager.DefaultBuildManager.PendBuildRequest(buildRequest); var timer = Stopwatch.StartNew(); - var buildResult = BuildManager.DefaultBuildManager.Build(buildParameters, buildRequest); + buildResult2.ExecuteAsync((BuildSubmission test) => + { + buildCompleteTcs.SetResult(test.BuildResult!); + Console.WriteLine("Build submission completed."); + }, null); + //var buildResult = BuildManager.DefaultBuildManager.Build(buildParameters, buildRequest); // This is a convenience to essentially do the same thing. + var buildResult = await buildCompleteTcs.Task.ConfigureAwait(false); timer.Stop(); Console.WriteLine($"Build result: {buildResult.OverallResult} in {timer.ElapsedMilliseconds}ms"); }).ConfigureAwait(false);